Excel VBA – 查找function – 查找variables

我的代码段如下;

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中的值将决定macros运行时select哪些列。 所以在前两个Cell.Find(What:=)函数中,我想让“Column1” Cell.Find(What:=) Column1variables(P1中的值)。

当我运行的macros,我得到错误“运行时错误:91块variables未设置的对象variables”,当我debugging,问题是行Cells.Find(What:=Column1).Activate

有任何想法吗?

如果您search工作表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