【发布时间】:2015-11-05 13:30:35
【问题描述】:
我们想比较两个不同 Excel 工作表中第一列的输出,并将差异更新到一个文本文件。这是仅将 excel1 中的 A1 数据与 excel2 的 A1 数据进行比较并附加到文本文件中:
Dim objExcel,ObjWorkbook,objsheet,ObjWorkbook1,objsheet1,Originalvalue,filesys, filetxt
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("D:\Test\copy.xlsx")
set objsheet = objExcel.ActiveWorkbook.Worksheets(1)
Set objWorkbook1 = objExcel.Workbooks.Open("D:\Test\Original.xlsx")
set objsheet1 = objExcel.ActiveWorkbook.Worksheets(1)
Originalvalue = objsheet.Cells(1,1).value
Copyvalue = objsheet1.Cells(1,1).value
If Originalvalue = Copyvalue then
Set filesys = CreateObject("Scripting.FileSystemObject")
Set filetxt = filesys.OpenTextFile("D:\Test\output.txt", ForAppending, True)
filetxt.WriteLine(Originalvalue)
filetxt.Close
msgbox Originalvalue
else
Set filesys = CreateObject("Scripting.FileSystemObject")
Set filetxt = filesys.OpenTextFile("D:\Test\output.txt", ForAppending, True)
filetxt.WriteLine(Copyvalue)
filetxt.Close
msgbox Copyvalue
End If
objExcel.ActiveWorkbook.Close
objExcel.Workbooks.Close
objExcel.Application.Quit
请问如何对所有A列的数据做到这一点?
【问题讨论】:
-
两个文件的记录数相同吗?而且您确实意识到这只会输出您的“复制”文件的txt副本,对吗? IF 语句的两个分支都会将 Copyvalue 的值写入 txt 文件。这真的是你想要的行为吗?
-
不,这两个文件不会有相同数量的记录。
-
感谢您指出.. (Copyvalue) 不是必需的。输出文本文件应仅包含差异值。