我有一个Excel数据表,其中包含有关特定产品的详细信息。在这里,我编写了一个VB脚本,该脚本使用我为所有单个产品指定的唯一产品名称精确定位到特定产品。 当我运行以下代码时:
Private Sub CommandButton23_Click()
Dim rngX As Range
Dim num As String
Set rngX = Worksheets("Sheet1").Range("A1:A10000").Find("CTPT", lookat:=xlPart)
num = rngX.Address
Range("$A$13:B" & Range("B2").End(xlDown).Row).Copy
Range("F1").PasteSpecial (xlPasteValues)
End Sub
在上面的代码中我得到了产品“CTPT”所在的位置,单元格位置的地址存储在“num”中。 如何在范围函数中指定“num”单元格地址$ A $ 13,以便我可以选择与该特定产品相关的所有参数,并将其复制并粘贴到F1单元格中。
答案 0 :(得分:2)
您的说法是正确的,因为您将使用Range.Find method找到rngX
,但您无需将其解析为随后用于参考的Range.Address property一个Range object。使用rngX
作为Range.Object可以生成起始单元格,rngX.Row
可以帮助获取Range.Copy method的左下角单元格。
Private Sub CommandButton23_Click()
Dim rngX As Range
Dim num As String
Set rngX = Worksheets("Sheet1").Range("A1:A10000").Find("CTPT", lookat:=xlPart)
Range(rngX, Range("B" & rngX.Row).End(xlDown)).Copy
Range("F1").PasteSpecial (xlPasteValues)
End Sub
答案 1 :(得分:0)
喜欢这个吗?
Range(num & ":B" & Range("B2").End(xlDown).Row).Copy
或者,没有中间人num
变量:
Range(rngX.Address & ":B" & Range("B2").End(xlDown).Row).Copy
我会建议Range("B2").End(xlDown)
可能不理想,在处理截图中非连续区域的数据时尤其不可靠。