如何在VBA中获取数组中项目的范围地址?
Sub sel_to_array() Dim arr As Variant Dim i Sheets("Ps").Activate Sheets("Ps").Range("C6").Select Range(Selection, Selection.End(xlDown)).Select 'arr = ActiveCell.CurrentRegion.Value arr = Selection For Each i In arr MsgBox i If Round(i, 0) = Round(proj_cbox.Value, 0) Then GoTo 1: End If Next i End Sub
下面是它的作用:当它find相等的匹配时,我想知道它的单元位置是什么,例如A3
或A13
。
尝试这个
Sub sel_to_array() Dim arr As Range, rng As Range, cell As Range Dim lastRow As Long Sheets("Ps").Activate lastRow = Sheets("Ps").Range("C" & Rows.Count).End(xlUp).Row If lastRow <= 5 Then Exit Sub Set rng = Range("C6:C" & lastRow) For Each cell In rng If Round(cell.Value, 0) = Round(proj_cbox.Value, 0) Then MsgBox cell.Address End If Next End Sub
不知道你为什么弹跳范围到一个数组。 如果这不是真的需要你可以试试这个:
Sub sel_to_address() Dim MyRange As Range For Each MyRange In Range(Sheets("Ps").Range("C6"), Sheets("Ps").Range("C6").End(xlDown)) MsgBox MyRange.Value If Round(MyRange.Value, 0) = Round(proj_cbox.Value, 0) Then MsgBox MyRange.Address End If Next MyRange End Sub
尝试:
MsgBox i.Address
或者你可以做到这一点
Set arr = Selection 'set here forces arr to a range object If Round(i, 0) = Round(proj_cbox.Value, 0) Then With i.Interior .Pattern = xlSolid .ColorIndex = 36 'Light Yellow End With Else i.Interior.ColorIndex = xlNone End If
这将遮蔽所有与淡黄色匹配的细胞,并清除所有没有的细胞的阴影。