我已经看过一堆文章,试图弄清楚这一点,但似乎没有任何工作。我已经在Excel工作簿中构建了一个宏来练习收集数据并制作我想要的表格,现在我想将它应用到其他工作簿中的其他文件夹中,而不是用于练习的原始文件。我把它放在同一个地方,但写了我认为会应用到其他位置的线条。奇怪的是,我拥有的代码会对新文件进行更改,但所有更改都是通过读取我一直在练习的工作簿中的数据。例如,它会将图纸添加到新文件中,但它会使用相同的信息填充每个工作簿,而不是它正在更改的书中的信息。如何在一个工作簿中使用宏来读取和分析多个其他数据 - Excel VBA
以下是我有:
Sub LoopFiles()
Dim MyFileName, FilenameNew, MyPath As String
Dim MyBook As Workbook
MyPath = "C:\ExcelT2\"
MyFileName = Dir(MyPath & "*.csv")
Do Until MyFileName = ""
Set wb1 = Workbooks.Open(MyPath & MyFileName)
Set MyBook = ActiveWorkbook
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
With wb1
wb1.Worksheets(1).Select
.
.
.
在此之后,它只是从线第一片材生产线读取数据,但它不是从我打开工作簿的第一页阅读。我不知道什么是错的。这里只是从一个地方一个样线,我在数据读取:
ra1 = Cells(i, 7)
.
.
.
Worksheets("Sheet2").Cells(prevval, 3) = ra1
这从错误的工作簿中提取数据,但把它在正确的纸张在新打开的工作簿。请帮忙!
***更新
此行给了我一个应用程序或现在的对象定义的错误..
ElseIf wb1.Worksheets(1).Cells(i, 3) <> wb1.Worksheets(1).Cells((i - 1), 3) Then
尝试此资格后':=工作表(Worksheets.Count )'通过包含一个工作簿对象,例如:'After:= wb1.Worksheets(Worksheets.Count)'并且尽量不使用'ActiveWorkbook',因为它可能会产生不可预知的结果。 – braX
使用您创建的对象:'With wb1.Sheets(“Sheet1”)''ra1 = .Cells(i,7)''End With''和'With wb1.Sheets(“Sheet2”)''.Cells(prevval,3)= ra1' 'End With' –