使用Visual Basic从MS Excel中提取数据时面临的问题

使用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

我已经编写了下面的代码,使用VB代码从MS excel将数据生成记事本格式。 我在记事本中获取文件,但问题是,如果excel中有多个工作表,那么我也会获取单个摘录。我想得到一个diff文件中所有工作表的摘录

请建议

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 

大家好,请建议如何在多张表格中获得结果