使用Visual Basic从MS Excel中提取数据时面临的问题
我已经编写了下面的代码,使用VB代码从MS excel将数据生成记事本格式。 我在记事本中获取文件,但问题是,如果excel中有多个工作表,那么我也会获取单个摘录。我想得到一个diff文件中所有工作表的摘录 请建议使用Visual Basic从MS Excel中提取数据时面临的问题,excel,vba,Excel,Vba,我已经编写了下面的代码,使用VB代码从MS excel将数据生成记事本格式。 我在记事本中获取文件,但问题是,如果excel中有多个工作表,那么我也会获取单个摘录。我想得到一个diff文件中所有工作表的摘录 请建议 Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" _ (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long Pr
Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" _
(ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Const MAX_PATH As Long = 260
'~~> Change this where and how you want to save the file
Const FlName = "C:\My\excel\MyWorkbook.vbs"
Sub Sample()
Dim tmpFile As String
Dim MyData As String, strData() As String
Dim entireline As String
Dim filesize As Integer
'~~> Create a Temp File
tmpFile = "C:\My\excel\Sheet1.vbs"
ActiveWorkbook.SaveAs Filename:=tmpFile _
, FileFormat:=xlText, CreateBackup:=False
'~~> Read the entire file in 1 Go!
Open tmpFile For Binary As #1
MyData = Space$(LOF(1))
Get #1, , MyData
Close #1
strData() = Split(MyData, vbCrLf)
'~~> Get a free file handle
filesize = FreeFile()
'~~> Open your file
Open FlName For Output As #filesize
For i = LBound(strData) To UBound(strData)
entireline = Replace(strData(i), """", "")
'~~> Export Text
Print #filesize, entireline
Next i
Close #filesize
MsgBox "Done"
End Sub
'Function TempPath() As String
'TempPath = String$(MAX_PATH, Chr$(0))
'GetTempPath MAX_PATH, TempPath
'TempPath = Replace(TempPath, Chr$(0), "")
'End Function
当您使用语句
ActiveWorkbook.SaveAs…
时,将立即保存所有工作表。相反,循环浏览工作表并分别保存每个工作表
For Each Sheet In ActiveWorkbook.Sheets
Sheet.SaveAs Filename:=tmpFile, FileFormat:=xlText, CreateBackup:=False
' Open and process the file...
Next
大家好,请建议如何在多张表格中获得结果