[英]How to select a range of rows using two variables in VBA
我是VBA的新手,正在嘗試編寫宏以將特定數據從同一目錄中的所有工作簿提取到主工作簿中。 嘗試使用變量選擇數據范圍時遇到麻煩,因此我可以將數據復制並粘貼到主工作簿中。 我一直在觀看視頻並通過論壇閱讀,但似乎無法使宏正常工作。
我有一個Excel工作表,該工作表在A列中列出了雇員,並在B,C,D,E和F列中(隨后的行中)列出了我要復制的所有有關雇員的數據。 因此,例如,第1行包含單元格A1中的第一個雇員,然后第2行至第5行包含B至F列中的數據。第6行包含單元格A6中的下一個雇員姓名,有關他們的數據位於第7行至第6行中9(BF列)。 我想復制2-5行並將其粘貼到主工作簿中,然后復制7-9行並粘貼到主工作簿中,8-14,依此類推。
我的第一次嘗試是將兩個變量定義為整數。 然后,我嘗試在A列中找到第一個雇員的姓名,然后選擇后面的行,並將第一個變量設置為等於該行。 然后找到第二個雇員的姓名,選擇前面的行,並將變量2設置為等於該行。 然后使用這兩個變量選擇范圍。 這是我的代碼:
Sub SelectConsultantData()
Dim Consultant1 As Integer, Consultant2 As Integer
Dim ConsultantRange As Range
Columns("A:A").Select
Selection.Find(What:="Andrew", After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Consultant1 = Rows(ActiveCell.Row).Select
Consultant1 = Consultant1 + 1
Columns("A:A").Select
Selection.Find(What:="Bob", After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Consultant2 = Rows(ActiveCell.Row).Select
Consultant2 = Consultant2 - 1
Set ConsultantRange = Range(Consultant1, Consultant2).Select
End Sub
知道我在做什么錯嗎,還是有人可以想到更好的方法? 另外,請讓我知道是否需要提供進一步的信息。
在此先感謝您的幫助。
您的代碼可以如下重寫。 避免在代碼中使用“選擇”。 檢查此鏈接以了解原因。
Sub SelectConsultantData()
Dim Consultant1 As Integer, Consultant2 As Integer
Dim ConsultantRange As Range
Dim rngFind As Range
Set rngFind = Columns("A:A").Find(What:="Andrew", After:=Range("A1"), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext)
If Not rngFind Is Nothing Then
Consultant1 = rngFind.Row + 1
End If
Set rngFind = Columns("A:A").Find(What:="Bob", After:=Range("A1"), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext)
If Not rngFind Is Nothing Then
Consultant2 = rngFind.Row - 1
End If
If Consultant1 > 0 And Consultant2 > 0 Then
Set ConsultantRange = Range(Cells(Consultant1, 2), Cells(Consultant2, 6))
End If
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.