Excel VBA - 查找函数 - 查找变量
问题描述:
我的代码段如下;Excel VBA - 查找函数 - 查找变量
Dim Column1 As String
Worksheets("Graph").Activate
Column1 = Cells(1, "P").Value
Dim Column2 As String
Worksheets("Graph").Activate
Column2 = Cells(2, "P").Value
Cells.Find(What:=Column1).Activate
StartP3Column = ActiveCell.Column
Cells.Find(What:=Column2).Activate
StartP4Column = ActiveCell.Column
EndP3Column = StartP4Column - 1
Cells.Find(What:="End Column").Activate
StartEndColumn = ActiveCell.Column
EndP4Column = StartEndColumn - 1
我试图让P1和P2中的值决定宏运行时选择哪些列。因此,在第一个2 Cell.Find(What:=)
函数中,我希望“Column1”获取Column1变量(P1中的值)。
当我运行宏,我得到的错误“运行时错误:与块变量未设置91.对象变量”,当我调试,问题是用线Cells.Find(What:=Column1).Activate
任何想法?
答
如果你搜索的片Sheet1
这些数据,这将运行:
Dim wsG As Worksheet
Dim wsS As Worksheet
Dim Rg As Range
Dim Column1 As String
Dim Column2 As String
Set wsG = ThisWorkbook.Sheets("Graph")
Set wsS = ThisWorkbook.Sheets("Sheet1")
wsG.Activate
Column1 = wsG.Cells(1, "P").Value
Column2 = wsG.Cells(2, "P").Value
Set Rg = wsS.Cells.Find(What:=Column1)
If Not Rg Is Nothing Then
StartP3Column = Rg.Column
Else
MsgBox Column1 & " not found in " & wsS.Name
End If
Set Rg = wsS.Cells.Find(What:=Column2)
If Not Rg Is Nothing Then
StartP4Column = Rg.Column
EndP3Column = Rg.Column - 1
Else
MsgBox Column2 & " not found in " & wsS.Name
End If
Set Rg = wsS.Cells.Find(What:="End Column")
If Not Rg Is Nothing Then
StartEndColumn = Rg.Column
EndP4Column = Rg.Column - 1
Else
MsgBox "End Column" & " not found in " & wsS.Name
End If
可以把这个值被发现的?你需要检查返回如此暗淡的范围,设置r = find(),然后检查返回r,如果它没有发现它什么都不是。然后,如果不是什么r.activate,但只有在这个宏中激活P2的查找。你也不需要激活Graph两次。 –