gpt4 book ai didi

excel - VBA从特定工作表中的多个不同工作簿复制数据,然后将数据粘贴到当前工作簿中的特定工作表

转载 作者:行者123 更新时间:2023-12-02 12:11:44 25 4
gpt4 key购买 nike

我对 VBA 非常陌生,需要一些帮助来复制和粘贴不同的工作簿和循环表名称。

我需要编写一个宏来从 100 个工作簿(具有完全相同的格式和工作表名称)复制数据,需要从名为“Summary”和“DB”的两个工作表复制到我当前工作簿的不同工作表。我在当前工作簿中设置了一个 Control_Panel 工作表,其名称为复制源文件的名称,我需要将其转义为空白(或者删除没有复制源文件的工作表,这样更好)

The Control_Panel Sheet Page looks like this:

这是我的代码:

   Option Explicit

Sub CopyData()
Dim Address As String
Dim CopyAddress As String
Dim CopyRef1 As String
Dim CopyRef2 As String
Dim PasteSheet As String
Dim Sheet1 As String
Dim Sheet2 As String
Dim A As Worksheet
Dim i As Integer


For i = 8 To 107 Step 1


If IsEmpty(Cells(i, "D").Value) = False Then

Sheet1 = "Summary"
Sheet2 = "DB"

Address = Cells(i, "D").Value
PasteSheet = Cells(i, "B").Value


CopyRef1 = "'" & Cells(4, "C") & "[& Address &]" & Sheet1 & "'!'" & Range("B6:DO20")
A = Worksheets("Sheet" & PasteSheet).Activate
A.Range("C6:DP20").PasteSpecial

CopyRef2 = "'" & Cells(4, "C") & "[& Address &]" & Sheet2 & "'!'" & Range("B7:LK631").Copy
ActiveWorkbook.Worksheets(PasteSheet).Range("B23:LK647").PasteSpecial


End If
Next i
End Sub

我不想每次尝试复制数据时都打开复制源文件,并且代码似乎无法识别源文件的位置。另外,当我尝试将数据粘贴到每个工作表时,我不确定是否可以识别“PasteSheet”名称。

请帮助我找到一种方法,从多个工作簿中复制两个名为“Summary”和“DB”的工作表中的数据,而无需打开它们,并将数据粘贴到不同的工作表中,工作表名称从单元格 B8 循环到 B107 .

非常感谢!

最佳答案

很难看出你在尝试什么。尝试像这样命名您的工作簿和工作表:

Dim wb as workbook, dim ws as worksheet,
Set wb = ThisWorkbook,
Set ws = wb.Worksheets("thenameofyourworksheet")

然后与ws.cells(4, "C") 等。我在您的代码中至少看到一个错误:

您的两个变量CopyRef1/2都包含Address项,它实际上(应该)是一个变量。因此,您的 "" 的放置不正确或不充分。

尝试...&“[”&地址&“]”

专业提示:使用标志!不要将变量命名为 Address 等,将其命名为 sAddress 并标记您的类型。

关于excel - VBA从特定工作表中的多个不同工作簿复制数据,然后将数据粘贴到当前工作簿中的特定工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38063093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com