[英]Excel VBA: Using variable in loop to define a Range next to the current cell
在WorksheetA中,我有一個列名Config ,
我想查找一個特定值,如果找到該值,則從另一個名為WorksheetB的工作表中復制相應的配置(基本上是不同配置的索引/列表)
因此,在WorksheetA中找到值“ J”,然后范圍(D20:G31)等於WorksheetB范圍(B15:E26)的值,依此類推,直到WorksheetA的此列中的所有值都得到驗證。
到目前為止,我明顯的錯誤代碼是
Public Sub CheckIndex()
Sheets("Worksheet_A").Select
' Find the last row of data
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
' Loop through each row
For x = 2 To FinalRow
' Decide if to copy based on column C
ThisValue = Cells(x, 3).Value
' SinglePath Configuration
If ThisValue = "J" Then
Sheets("Worksheet_A").Range("D" & x & ":G" & x + 11).Value = Sheets("Worksheet_B").Range("B15:E26").Value
ElseIf ThisValue = "C" Then
Sheets("Worksheet_A").Range("D" & x & ":G" & x + 11).Value = Sheets("Worksheet_B").Range("B3:E14").Value
End If
Next x
結束子
那么,有什么方法可以在循環中使用變量的值來定義當前位置旁邊的范圍? 我的代碼太糟糕了,我應該對此感到不好嗎? jk(我已經知道它不好)
我只是最近才開始使用VBA,因此我幾乎沒有編寫宏的經驗。 因此,預先感謝您的所有回復
由於@ZAT建議,最終代碼為:
Public Sub CheckIndex()
Sheets("Worksheet_A").Select
' Find the last row of data
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
' Loop through each row
For x = 5 To FinalRow
' Decide if to copy based on column C
ThisValue = Cells(x, 3).Value
' SinglePath Configuration
If ThisValue = "J" Then
Worksheets("Worksheet_B").Range("B15:E26").Copy Destination:=Worksheets("Worksheet_A").Range("D" & x)
ElseIf ThisValue = "C" Then
Worksheets("Worksheet_B").Range("B3:E14").Copy Destination:=Worksheets("Worksheet_A").Range("D" & x)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.