如何确保复制的值取决于另一个 sheet 上的变量值?

How to make sure the value copied depends on the value of variable on the other sheet?

我想将 sheet 2 中的一列复制到另一列 sheet。
但该值取决于以下条件:

  1. 如果 Sheet1 = 0,则将 Sheet2 中的 H103 复制到 Sheet3 D 列。
  2. 如果 Sheet1 = 1 则将 Sheet2 中的 H3 复制到 Sheet3 D 列直到 100。
  3. 如果 Sheet1=100 然后复制 H102in sheet 2 到 sheet3 Column D.

我需要在第 104 行之前写条件吗?或者我能做什么。请帮助我!

SrcNodeld = Sheets("Sheet1").Columns("C").Column
Sheets("Sheet1").Activate
     
If SrcNodeld = 0 Then
    Sheets("Sheet2").Numbers("H103").Copy
    Sheets("Sheet3").Activate
    Columns("D").Select
    ActivateSheet.Paste
ElseIf SrcNodeld = 1 Then
    Sheets("Sheet2").Numbers("H3").Copy
    Sheets("Sheet3").Activate
    Columns("D").Select
    ActivateSheet.Paste
ElseIf SrcNodeld = 2 Then
    Sheets("Sheet2").Numbers("H4").Copy
    Sheets("Sheet3").Activate
    Columns("D").Select
End If

是的,我想使用 for 循环,但不知道如何使用。

示例数据:

希望我没看错:

宏从 sheet1.C1 开始,直到 sheet1.Cx 为空。如果 sheet1.Cx = 0 则将 sheet2.Dx(开始 D103)复制到 sheet34.Hx(开始 H1)

Sub copy()
Dim sheet1 As Worksheet
Dim sheet2 As Worksheet
Dim sheet34 As Worksheet
Set sheet1 = Worksheets("Sheet1")
Set sheet2 = Worksheets("Sheet2")
Set sheet34 = Worksheets("Sheet34")
i = 1
j = 103 'start sheet34 H103
While Not IsEmpty(sheet1.Cells(i, 3)) 'start C1 to empty cell
If sheet1.Cells(i, 3) = 0 Then
sheet34.Cells(i, 4) = sheet2.Cells(j, 8)
End If
i = i + 1
j = j + 1
Wend
End Sub