首页 文章

选择粘贴目标工作表时,VBA代码将单元格引用为名称

提问于
浏览
0

有人可以帮我修改这段代码,以便它可以引用单元格A6中的数据并粘贴到以该数据命名的工作表 .

我已经有了一个工作宏,用于将数据从封面表粘贴到各个工作表,每天都没有覆盖以前填充的单元格(见下文) .

问题是代码太具体,并且在将新行引入“Balancer”封面时不易操作 . 以下是当前代码的示例:

Sub pastetosheet()

 r = 1
Sheets("Balancer").Range("B2").Copy
Sheets("X9X9USDFEDT6").Range("C35").End(xlUp).Offset(r, 0).PasteSpecial _
    paste:=xlPasteValues
Application.CutCopyMode = False
Sheets("Balancer").Range("D2").Copy
Sheets("X9X9USDFEDT6").Range("D35").End(xlUp).Offset(r, 0).PasteSpecial _
    paste:=xlPasteValues
Application.CutCopyMode = False
Sheets("Balancer").Range("F2").Copy
Sheets("X9X9USDFEDT6").Range("F35").End(xlUp).Offset(r, 0).PasteSpecial _
    paste:=xlPasteValues
Application.CutCopyMode = False
Sheets("Balancer").Range("G2").Copy
Sheets("X9X9USDFEDT6").Range("H35").End(xlUp).Offset(r, 0).PasteSpecial _
    paste:=xlPasteValues
Application.CutCopyMode = False
End Sub

我希望代码在“Balancer”选项卡上的Range“B6”中复制数据,然后将单元格中的数据引用到左侧(本例中为A6),以找出要粘贴到哪个工作表 . 然后使用当前代码中已有的粘贴规则 .

1 回答

  • 1

    如果每一行在 A 列中指定了自己的目标表,则应执行以下操作:

    Sub pasteToSheetOfA()
        Dim r As Long, t As Range
        With Sheets("Balancer")
            For r = 1 To .Range("B1000000").End(xlUp).Row ' for all rows of column B
    
                ' get the target sheet specified in column A, goto beyond last cell in C of this sheet
                Set t = Sheets(.Range("A" & r).value).Range("C1000000").End(xlUp).Offset(1)
    
                ' now copy the cells of the row according to the rules of the OP
                t.value = .Cells(r, "B").value
                t.Offset(,1).value = .Cells(r, "D").value
                t.Offset(,3).value = .Cells(r, "F").value
                t.Offset(,5).value = .Cells(r, "G").value
            Next
        End With
    End Sub
    

相关问题