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

时间:2015-01-16 00:50:40

标签: excel vba excel-vba

我想将表2中的一列复制到另一张表中 但价值取决于以下条件:

  1. 如果Sheet1 = 0,则将Sheet2中的 H103 复制到Sheet3 D列。
  2. 如果Sheet1 = 1,则将Sheet2中的 H3 复制到Sheet3列D,直到100.
  3. 如果Sheet1 = 100,则将表2中的 H102 复制到sheet3 D列。
  4. 我需要在第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循环,但不知道如何。

    示例数据: sample

1 个答案:

答案 0 :(得分:1)

希望我理解正确:

在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