|
|

楼主 |
发表于 2009-6-27 11:09
|
显示全部楼层
单击单元格弹出对应的图片(布领存.XLS)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim PIC_NAME As String, TAR As String
On Error Resume Next
For Each Pi In ActiveSheet.Shapes
Pi.Delete
Next Pi
On Error GoTo 0
If Selection.Cells.Count = 1 Then
If Target.Value <> "" And Target.Column = 8 Then
TAR = Target.Offset(0, -5).Value
PIC_NAME = Right(TAR, Len(TAR) - 2)
With ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _
DisplayAsIcon:=False, Left:=Target.Left + Target.Width, Top:=Target.Top, Width:=110, Height _
:=120).Object
.PictureSizeMode = fmPictureSizeModeStretch
On Error GoTo ERR_ROW
.Picture = LoadPicture(ThisWorkbook.Path & "\PIC\" & PIC_NAME & ".JPG")
End
ERR_ROW:
.Picture = LoadPicture(ThisWorkbook.Path & "\PIC\无图片.JPG")
End With
End If
End If
On Error GoTo 0
End Sub
第75例:ListView控件添加新记录
Private Sub UserForm_Initialize()
Dim ITM As ListItem
ListView1.ColumnHeaders.Add 1, , "QQ号", ListView1.Width / 3
ListView1.ColumnHeaders.Add 2, , "昵称", ListView1.Width / 3, lvwColumnCenter
ListView1.ColumnHeaders.Add 3, , "地区", ListView1.Width / 3
ListView1.View = lvwReport
ListView1.Gridlines = True
For i = 2 To [A65536].End(xlUp).Row
Set ITM = ListView1.ListItems.Add()
ITM.Text = Cells(i, 1)
ITM.SubItems(1) = Cells(i, 2)
ITM.SubItems(2) = Cells(i, 3)
Next i
End Sub
第76例:listView控件添加图标
Private Sub UserForm_Initialize()
ListView1.Icons = ImageList1
ListView1.SmallIcons = ImageList1
ListView1.ColumnHeaderIcons = ImageList1
Dim ITM As ListItem
ListView1.ColumnHeaders.Add 1, , "QQ号", ListView1.Width / 3, , 1
ListView1.ColumnHeaders.Add 2, , "昵称", ListView1.Width / 3, lvwColumnCenter, 2
ListView1.ColumnHeaders.Add 3, , "来自何处", ListView1.Width / 3, , 3
ListView1.View = lvwReport
ListView1.Gridlines = True
For i = 2 To 5
Set ITM = ListView1.ListItems.Add()
ITM.Text = Cells(i, 1)
ITM.SubItems(1) = Cells(i, 2)
ITM.SubItems(2) = Cells(i, 3)
ITM.Icon = 1
ITM.SmallIcon = 4
Next i
End Sub
另一例
Private Sub OptionButton1_Click()
ListView1.View = lvwIcon
End Sub
Private Sub OptionButton2_Click()
ListView1.View = lvwSmallIcon
End Sub
Private Sub OptionButton3_Click()
ListView1.View = lvwList
End Sub
Private Sub OptionButton4_Click()
ListView1.View = lvwReport
End Sub
Private Sub UserForm_Initialize()
ListView1.Icons = ImageList1
ListView1.SmallIcons = ImageList1
ListView1.ColumnHeaderIcons = ImageList1
Dim ITM As ListItem
ListView1.ColumnHeaders.Add 1, , "QQ号", ListView1.Width / 3, , 1
ListView1.ColumnHeaders.Add 2, , "昵称", ListView1.Width / 3, lvwColumnCenter
ListView1.ColumnHeaders.Add 3, , "来自何处", ListView1.Width / 3
ListView1.View = lvwReport
ListView1.Gridlines = True
For i = 1 To 5
Set ITM = ListView1.ListItems.Add()
ITM.Text = Cells(i, 1)
ITM.SubItems(1) = Cells(i, 2)
ITM.SubItems(2) = Cells(i, 3)
ITM.Icon = i
ITM.SmallIcon = i
Next i
End Sub
第77例:listView控件对工作表实现数据筛选
Private Sub ComboBox1_Change()
Dim ITM As ListItem
ListView1.ColumnHeaders.Clear
ListView1.ListItems.Clear
ListView1.ColumnHeaders.Add 1, , "省份", ListView1.Width / 4
ListView1.ColumnHeaders.Add 2, , "客户", ListView1.Width / 4, lvwColumnCenter
ListView1.ColumnHeaders.Add 3, , "销售数量", ListView1.Width / 4, lvwColumnCenter
ListView1.ColumnHeaders.Add 4, , "销售金额", ListView1.Width / 4, lvwColumnCenter
ListView1.View = lvwReport
ListView1.Gridlines = True
For i = 2 To [A65536].End(xlUp).Row
If Cells(i, 1) = ComboBox1.Text Then
Set ITM = ListView1.ListItems.Add()
ITM.Text = Cells(i, 1)
ITM.SubItems(1) = Cells(i, 2)
ITM.SubItems(2) = Cells(i, 3)
ITM.SubItems(3) = Cells(i, 4)
End If
Next i
End Sub
Private Sub UserForm_Initialize()
Dim i, J
For i = 2 To Sheets("SHEET1").[A65536].End(xlUp).Row
For J = 0 To ComboBox1.ListCount - 1
If Cells(i, 1) = ComboBox1.List(J) Then GoTo 100
Next J
ComboBox1.AddItem Cells(i, 1)
100:
Next i
ListView1.FullRowSelect = True
ListView1.MultiSelect = True
End Sub
第78例:listView控件所有数据输出到工作表
Private Sub ComboBox1_Change()
Dim ITM As ListItem
ListView1.ColumnHeaders.Clear
ListView1.ListItems.Clear
ListView1.ColumnHeaders.Add 1, , "省份", ListView1.Width / 4
ListView1.ColumnHeaders.Add 2, , "客户", ListView1.Width / 4, lvwColumnCenter
ListView1.ColumnHeaders.Add 3, , "销售数量", ListView1.Width / 4, lvwColumnCenter
ListView1.ColumnHeaders.Add 4, , "销售金额", ListView1.Width / 4, lvwColumnCenter
ListView1.View = lvwReport
ListView1.Gridlines = True
With Sheets("SHEET1")
For I = 2 To .[A65536].End(xlUp).Row
If .Cells(I, 1) = ComboBox1.Text Then
Set ITM = ListView1.ListItems.Add()
ITM.Text = .Cells(I, 1)
ITM.SubItems(1) = .Cells(I, 2)
ITM.SubItems(2) = .Cells(I, 3)
ITM.SubItems(3) = .Cells(I, 4)
End If
Next I
End With
End Sub
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim I, J
On Error Resume Next
Range("a:d").ClearContents
For I = 1 To ListView1.ColumnHeaders.Count
Cells(1, I) = ListView1.ColumnHeaders(I).Text
For J = 1 To ListView1.ListItems.Count
Cells(J + 1, 1) = ListView1.ListItems(J).Text
Cells(J + 1, I + 1) = ListView1.ListItems(J).SubItems(I)
Next J
Next I
Application.ScreenUpdating = True
End Sub
Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)
End Sub
Private Sub UserForm_Initialize()
Dim I, J
With Sheets("SHEET1")
For I = 2 To .[A65536].End(xlUp).Row
For J = 0 To ComboBox1.ListCount - 1
If .Cells(I, 1) = ComboBox1.List(J) Then GoTo 100
Next J
ComboBox1.AddItem .Cells(I, 1)
100:
Next I
End With
End Sub
第79例:listView控件选取行数据输出到工作表
Private Sub ListView1_DblClick()
Dim X As Long
X = [A65536].End(xlUp).Row + 1
Cells(X, 1) = ListView1.SelectedItem.Text
Cells(X, 2) = ListView1.SelectedItem.SubItems(1)
Cells(X, 4) = ListView1.SelectedItem.SubItems(2)
End Sub
Private Sub UserForm_Initialize()
ListView1.FullRowSelect = True
Dim ITM As ListItem
ListView1.ColumnHeaders.Add 1, , "商品类别", ListView1.Width / 3
ListView1.ColumnHeaders.Add 2, , "商品名称", ListView1.Width / 3, lvwColumnCenter
ListView1.ColumnHeaders.Add 3, , "单价", ListView1.Width / 3, lvwColumnCenter
ListView1.View = lvwReport
ListView1.Gridlines = True
With Sheet1
For i = 2 To .[A65536].End(xlUp).Row
Set ITM = ListView1.ListItems.Add()
ITM.Text = .Cells(i, 1)
ITM.SubItems(1) = .Cells(i, 2)
ITM.SubItems(2) = .Cells(i, 3)
Next i
Set ITM = Nothing
End With
End Sub
第80例:listView控件红色字体合计行设置
Private Sub ComboBox1_Change()
Dim ITM As ListItem
Dim ITM1 As ListItem
Dim 销量合计, 销售金额合计
ListView1.ColumnHeaders.Clear
ListView1.ListItems.Clear
ListView1.ColumnHeaders.Add 1, , "省份", ListView1.Width / 5
ListView1.ColumnHeaders.Add 2, , "客户", ListView1.Width / 4, lvwColumnCenter
ListView1.ColumnHeaders.Add 3, , "销售数量", ListView1.Width / 4, lvwColumnRight
ListView1.ColumnHeaders.Add 4, , "销售金额", ListView1.Width / 4, lvwColumnRight
ListView1.View = lvwReport
ListView1.Gridlines = True
For I = 2 To [A65536].End(xlUp).Row
If Cells(I, 1) = ComboBox1.Text Then
Set ITM = ListView1.ListItems.Add()
ITM.Text = Cells(I, 1)
ITM.SubItems(1) = Cells(I, 2)
ITM.SubItems(2) = Format(Cells(I, 3), "#,###.00")
ITM.SubItems(3) = Format(Cells(I, 4), "#,###.00")
销量合计 = 销量合计 + Cells(I, 3)
销售金额合计 = 销售金额合计 + Cells(I, 4)
End If
Next I
Set ITM1 = ListView1.ListItems.Add()
ITM1.Text = "合计"
ITM1.SubItems(2) = Format(销量合计, "#,###.00")
ITM1.SubItems(3) = Format(销售金额合计, "#,###.00")
ITM1.ForeColor = RGB(255, 0, 0)
ITM1.Bold = True
For x = 1 To ListView1.ColumnHeaders.Count - 1
ITM1.ListSubItems(x).ForeColor = RGB(255, 0, 0)
ITM1.ListSubItems(x).Bold = True
Next
End Sub
Private Sub UserForm_Initialize()
Dim I, J
For I = 2 To Sheets("SHEET1").[A65536].End(xlUp).Row
For J = 0 To ComboBox1.ListCount - 1
If Cells(I, 1) = ComboBox1.List(J) Then GoTo 100
Next J
ComboBox1.AddItem Cells(I, 1)
100:
Next I
End Sub
第81例:ListView控件记录批量删除
Private Sub ComboBox1_Change()
Dim ITM As ListItem
ListView1.ColumnHeaders.Clear
ListView1.ListItems.Clear
ListView1.ColumnHeaders.Add 1, , "省份", ListView1.Width / 4
ListView1.ColumnHeaders.Add 2, , "客户", ListView1.Width / 4, lvwColumnCenter
ListView1.ColumnHeaders.Add 3, , "销售数量", ListView1.Width / 4, lvwColumnCenter
ListView1.ColumnHeaders.Add 4, , "销售金额", ListView1.Width / 4, lvwColumnCenter
ListView1.View = lvwReport
ListView1.Gridlines = True
For i = 2 To [A65536].End(xlUp).Row
If Cells(i, 1) = ComboBox1.Text Then
Set ITM = ListView1.ListItems.Add()
ITM.Text = Cells(i, 1)
ITM.SubItems(1) = Cells(i, 2)
ITM.SubItems(2) = Cells(i, 3)
ITM.SubItems(3) = Cells(i, 4)
End If
Next i
End Sub
Private Sub CommandButton1_Click()
Dim i As Integer
For i = Me.ListView1.ListItems.Count To 1 Step -1
If Me.ListView1.ListItems(i).Selected Then
Me.ListView1.ListItems.Remove i
End If
Next i
End Sub
Private Sub UserForm_Initialize()
Dim i, J
For i = 2 To Sheets("SHEET1").[A65536].End(xlUp).Row
For J = 0 To ComboBox1.ListCount - 1
If Cells(i, 1) = ComboBox1.List(J) Then GoTo 100
Next J
ComboBox1.AddItem Cells(i, 1)
100:
Next i
ListView1.FullRowSelect = True
ListView1.MultiSelect = True
End Sub |
|