Excel 是否可以从多个工作簿中的特定位置提取数据并将其粘贴到单个工作表中的特定位置?
我正试图从数千个更改文件名的Excel工作簿中提取数据。宏的目标是遍历我文件夹中的每个工作簿,提取特定数据并将其粘贴到单个工作表中 我知道这需要一个循环。到目前为止,这是我所拥有的,但它没有正确执行。宏运行,但什么也没发生有人能帮我解决这个问题吗?Excel 是否可以从多个工作簿中的特定位置提取数据并将其粘贴到单个工作表中的特定位置?,excel,vba,Excel,Vba,我正试图从数千个更改文件名的Excel工作簿中提取数据。宏的目标是遍历我文件夹中的每个工作簿,提取特定数据并将其粘贴到单个工作表中 我知道这需要一个循环。到目前为止,这是我所拥有的,但它没有正确执行。宏运行,但什么也没发生有人能帮我解决这个问题吗? Sub WBsInFolderToMaster() Dim Sheet2 As Worksheet Set Sheet2 = ThisWorkbook.Worksheets("Sheet2") Application.Disp
Sub WBsInFolderToMaster()
Dim Sheet2 As Worksheet
Set Sheet2 = ThisWorkbook.Worksheets("Sheet2")
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.AskToUpdateLinks = False
Application.Calculation = xlCalculationManual
On Error Resume Next
Dim X As Long
For X = 6 To 8
If Sheet2.Cells(X, "E").Value2 <> "" Then
Dim FPath As Long
FPath = Sheet2.Cells(X, "F").Value
Dim openwb1 As Workbook
Set openwb1 = Workbooks.Open(FPath, UpdateLinks:=False)
Dim SPtab As Worksheet
Set SPtab = openwb1.Sheets("SUMMARY PAGE")
Dim PItab As Worksheet
Set PItab = openwb1.Sheets("PROJECT INFORMATION")
Dim CDtab As Worksheet
Set CDtab = openwb1.Sheets("COST_DETAIL")
Dim CStab As Worksheet
Set CStab = openwb1.Sheets("COST_SUMMARY")
'----------------------------------------------------------------------
'SUMMARY PAGE TAB
'Unprotect workbook
openwb1.Unprotect Password:="PASSWORD"
'Unprotect sheet
SPtab.Unprotect Password:="PASSWORD"
'Copy and Paste Disaster
SPtab.Range("C8").Copy = Sheet2.Cells(X, "G").PasteSpecial(xlPasteValues)
'Copy and Paste PW
SPtab.Range("E7").Copy = Sheet2.Cells(X, "H").PasteSpecial(xlPasteValues)
'Copy and Paste Applicant
SPtab.Range("C3").Copy = Sheet2.Cells(X, "I").PasteSpecial(xlPasteValues)
'Copy and Paste Program
SPtab.Range("C7").Copy = Sheet2.Cells(X, "J").PasteSpecial(xlPasteValues)
'Copy and Paste RFR
SPtab.Range("E8").Copy = Sheet2.Cells(X, "K").PasteSpecial(xlPasteValues)
'----------------------------------------------------------------------
'PROJECT INFORMATION TAB
'Unprotect sheet
PItab.Unprotect Password:="Password"
'Copy and Paste Disaster
PItab.Range("C8").Copy = Sheet2.Cells(X, "L").PasteSpecial(xlPasteValues)
'Copy and Paste PW
PItab.Range("E7").Copy = Sheet2.Cells(X, "M").PasteSpecial(xlPasteValues)
'Copy and Paste Applicant
PItab.Range("C3").Copy = Sheet2.Cells(X, "N").PasteSpecial(xlPasteValues)
'Copy and Paste Program
PItab.Range("C7").Copy = Sheet2.Cells(X, "O").PasteSpecial(xlPasteValues)
'Copy and Paste RFR
PItab.Range("E8").Copy = Sheet2.Cells(X, "P").PasteSpecial(xlPasteValues)
'----------------------------------------------------------------------
'COST_DETAIL TAB
'Unprotect sheet
CDtab.Unprotect Password:="PASSWORD"
'Copy and Paste SUBRECIPIENT
CDtab.Range("D2").Copy = Sheet2.Cells(X, "Q").PasteSpecial(xlPasteValues)
'Copy and Paste ELIGIBLE AMOUNT
CDtab.Range("O5").Copy = Sheet2.Cells(X, "R").PasteSpecial(xlPasteValues)
'Copy and Paste SUBSTANTIATED AMOUNT
CDtab.Range("X6").Copy = Sheet2.Range(X, "S").PasteSpecial(xlPasteValues)
'----------------------------------------------------------------------
'COST SUMMARY TAB
'Unprotect sheet
CStab.Unprotect Password:="PASSWORD"
'Copy and Paste SUBRECIPIENT
CStab.Range("C2").Copy = Sheet2.Cells(X, "T").PasteSpecial(xlPasteValues)
'Copy and Paste SUBSTANTIATED AMOUNT
CStab.Range("X6").Copy = Sheet2.Cells(X, "U").PasteSpecial(xlPasteValues)
'----------------------------------------------------------------------
'CLOSING WORKBOOK
openwb1.Close (False)
End If
Next X
'----------------------------------------------------------------------
'WHEN LOOP IS COMPLETE
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.AskToUpdateLinks = True
Application.Calculation = xlCalculationAutomatic
ThisWorkbook.Save
End Sub
子WBsInFolderToMaster()
将图纸2调整为工作表
Set Sheet2=此工作簿。工作表(“Sheet2”)
Application.DisplayAlerts=False
Application.ScreenUpdating=False
Application.EnableEvents=False
Application.AskToUpdateLinks=False
Application.Calculation=xlCalculationManual
出错时继续下一步
暗X等长
对于X=6到8
如果表2.单元格(X,“E”).值2“,则
暗淡的FPath尽可能长
FPath=Sheet2.单元格(X,“F”).值
将openwb1设置为工作簿
设置openwb1=Workbooks.Open(FPath,UpdateLinks:=False)
将选项卡设置为工作表
设置SPtab=openwb1.Sheets(“摘要页”)
将PItab设置为工作表
设置PItab=openwb1.Sheets(“项目信息”)
将CDtab设置为工作表
设置CDtab=openwb1.Sheets(“成本详细信息”)
将CStab设置为工作表
设置CStab=openwb1.Sheets(“成本汇总”)
'----------------------------------------------------------------------
'摘要页选项卡
'取消对工作簿的保护
openwb1.取消密码保护:=“密码”
'取消对工作表的保护
SPtab.Unprotect密码:=“密码”
“复制粘贴灾难”
SPtab.Range(“C8”).Copy=Sheet2.Cells(X,“G”).PasteSpecial(XLPasteValue)
'复制并粘贴PW
SPtab.Range(“E7”).Copy=Sheet2.Cells(X,“H”).PasteSpecial(XLPasteValue)
'复制并粘贴申请者
SPtab.Range(“C3”).Copy=Sheet2.Cells(X,“I”).PasteSpecial(XLPasteValue)
'复制和粘贴程序
SPtab.Range(“C7”).Copy=Sheet2.Cells(X,“J”).PasteSpecial(XLPasteValue)
'复制并粘贴RFR
SPtab.Range(“E8”).Copy=Sheet2.Cells(X,“K”).PasteSpecial(XLPasteValue)
'----------------------------------------------------------------------
'项目信息选项卡
'取消对工作表的保护
PItab.Unprotect密码:=“密码”
“复制粘贴灾难”
PItab.Range(“C8”).Copy=Sheet2.Cells(X,“L”).PasteSpecial(XLPasteValue)
'复制并粘贴PW
PItab.Range(“E7”).Copy=Sheet2.Cells(X,“M”).PasteSpecial(XLPasteValue)
'复制并粘贴申请者
PItab.Range(“C3”).Copy=Sheet2.单元格(X,“N”).PasteSpecial(XLPasteValue)
'复制和粘贴程序
PItab.Range(“C7”).Copy=Sheet2.Cells(X,“O”).PasteSpecial(XLPasteValue)
'复制并粘贴RFR
PItab.Range(“E8”).Copy=Sheet2.Cells(X,“P”).PasteSpecial(XLPasteValue)
'----------------------------------------------------------------------
“成本明细”选项卡
'取消对工作表的保护
CDtab.取消密码保护:=“密码”
'复制并粘贴子收件人
CDtab.Range(“D2”).Copy=Sheet2.Cells(X,“Q”).PasteSpecial(XLPasteValue)
'复制并粘贴符合条件的金额
CDtab.Range(“O5”).Copy=Sheet2.Cells(X,“R”).PasteSpecial(XLPasteValue)
'复制并粘贴已证实的金额
CDtab.Range(“X6”).Copy=Sheet2.Range(X,“S”).PasteSpecial(XLPasteValue)
'----------------------------------------------------------------------
“成本汇总”选项卡
'取消对工作表的保护
CStab.Unprotect密码:=“密码”
'复制并粘贴子收件人
CStab.Range(“C2”).Copy=Sheet2.Cells(X,“T”).PasteSpecial(XLPasteValue)
'复制并粘贴已证实的金额
CStab.Range(“X6”).Copy=Sheet2.Cells(X,“U”).PasteSpecial(XLPasteValue)
'----------------------------------------------------------------------
'关闭工作簿
openwb1.Close(False)
如果结束
下一个X
'----------------------------------------------------------------------
'当循环完成时
Application.DisplayAlerts=True
Application.ScreenUpdating=True
Application.EnableEvents=True
Application.AskToUpdateLinks=True
Application.Calculation=xlCalculationAutomatic
此工作簿。保存
端接头
,然后继续下一步
。这只是隐藏了所有的错误Dim FPath As Long
应为Dim FPath As String
复制
和粘贴到一行中。它必须是两个独立的步骤,但是
SPtab.Range(“C8”).Copy=Sheet2.Cells(X,“G”).PasteSpecial(xlPasteValues)
...
SPtab.Range(“E7”).Copy=Sheet2.Cells(X,“H”).PasteSpecial(XLPasteValue)
...
变成
Sheet2.单元格(X,“G”).Value=SPtab.Range(“C8”).Value
...
表2.单元格(X,“H”).值=SPtab.范围(“E7”).值
...
等等
,然后继续下一步
。这只是隐藏了所有的错误Dim FPath As Long
应为Dim FPath As String
复制
和粘贴到一行中。它必须是两个独立的步骤,但是
SPtab.Range(“C8”).Copy=Sheet2.Cells(X,“G”).PasteSpecial(XLPasteValue