2014-05-23 48 views
2

我正在編寫一個VBA代碼,它將在我的Excel工作簿中打開特定的工作表,然後在列A中查找具有值「TOTAL」的單元格。然後,必須將其設置爲ActiveCell,以便我的宏的其餘部分可以在包含此單元格的行上執行操作。如何查找特定單元格並將其設置爲ActiveCell

我想要它,以便當用戶運行宏時,這個單元格就是專門選擇的。這個單元格的位置在宏運行後會改變,所以我需要它工作,不管這個值是什麼單元格。每次宏運行時,在包含「TOTAL」的行的上面添加一個新行,因此,這個細胞是不斷變化的。

到目前爲止,我已經想出了這個,只是通過論壇閱讀。它仍然不起作用,但我是這種語言的新手,我無法確定錯誤在哪裏。

Sub Macro2() 

    Dim C As Range 
    Worksheets("Project Total").Select 
    With Selection 
     C = .Find("TOTAL", After:=Range("A2"), MatchCase:=True) 
    End With 

End Sub 

回答

3

試試這個:

Sub Macro2() 
Dim cl As Range 

    With Worksheets("Project Total").Cells 
     Set cl = .Find("TOTAL", After:=.Range("A2"), LookIn:=xlValues) 
     If Not cl Is Nothing Then 
      cl.Select 
     End If 
    End With 
End Sub 
+0

我試了一下,提出問題是一個運行時錯誤: 「Range類失敗的選擇方法」 – user3669425

+0

它適合我。錯誤說了什麼,並在哪條線上拋出? –

+0

該問題出現在「c1.Select」行上,並且運行時錯誤1004.我認爲它必須與使c1成爲Range有關嗎? – user3669425

0

試試這個:

Sub activateCellContainingTOTAL() 

      'Go to the worksheet 
      Worsheets("Project Total").Activate 

      'Start going down column A to see if you find the total 
      dim loopBool as Boolean 
      loopBool = True 
      Worksheets("Project Total").Range("A1").Activate 
      Do While loopBool=True 
       if Activecell.value = "TOTAL" then 
         loop = false 
       else 
         activecell.offset(1, 0).Activate 
       end if 
      loop 
End sub 
相關問題