我一直在研究VBA代码,该代码将文件夹中的第一个工作表复制到另一个工作簿中。
代码正确地复制了数据,但是保存后我得到了某些错误的单元格(#Ref),这是由于某些复制的单元格具有公式。
我希望复制到数据以保留原始格式,但仅具有值。或者,具有2个错误的单元格是M11和O11,它们具有索引匹配公式,如果可以粘贴这2个单元格的值而无需公式,则复制的数据的其余部分就可以了。
任何帮助将不胜感激。
我尝试使用PasteSpecial xlPasteValuesAndNumberFormats和.PasteSpecial xlPasteFormats,但是我不确定如何修改复制功能。
Sub MergeMultipleWorkbooks()
Dim Path, Filename As String
Path = "C:\Users\User\Desktop\ProMacro\"
Filename = Dir(Path & "*.xlsx")
Do While Filename <> ""
With Workbooks.Open(Filename:=Path & Filename, ReadOnly:=True)
.Worksheets(1).Copy After:=ThisWorkbook.Sheets(1)
.Close False
End With
Filename = Dir()
Loop
MsgBox "Files has been copied Successfull", , "MergeMultipleExcelFiles"
End Sub
代码从文件夹中的指定文件复制了第一张纸,我唯一的问题是,在将文件保存为已复制的公式时,某些单元格将具有#Ref。
答案 0 :(得分:0)
打开工作簿时,复制工作表的所有内容并将其粘贴到同一工作表中作为值。这是您放在
之间的代码使用Workbooks.Open(文件名:=路径和文件名,ReadOnly:= True)和.Worksheets(1)。之后复制:= ThisWorkbook.Sheets(1)
格式不变,公式将替换为值。
这不是一个非常友好的解决方案,但是在考虑并试图找到一个好的解决方案之后,我想到的只是其他事情。