簡體   English   中英

Excel VBA:使用循環中的變量在當前單元格旁邊定義一個范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM