如何将csv工作表复制到Excel文件中而不进行更改

MK01111000

我有一个csv文件,如下所示

在此处输入图片说明

当我选择所有单元格并将其手动复制/粘贴到另一个Excel文件中时,结果与原始结果相同。但是,尝试在VBA中执行相同操作会给我以下结果。

在此处输入图片说明

这是我正在使用的代码。

Sub test()
    Dim arr1 As Object
    Set arr1 = CreateObject("System.Collections.ArrayList")
    Dim fldr As FileDialog
    Dim sItem As String
    Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
    With fldr
        .Title = "Select"
        .AllowMultiSelect = False
        .InitialFileName = strPath
        If .Show <> -1 Then GoTo NextCode
        sItem = .SelectedItems(1)
    End With
NextCode:
    GetFolder = sItem
    '-----------------------------------------------------------
    Dim FileName As Variant
    FileName = Dir(GetFolder & "\")
    '-----------------------------------------------------------
    While FileName <> ""
        arr1.Add GetFolder & "\" & FileName
        FileName = Dir
    Wend
    '-----------------------------------------------------------
    Set fldr = Nothing
    Dim i As Long
    For i = 0 To arr1.Count - 1
        '-------------------------------------------------------------------
        Dim wkbk As Workbook
        Set wkbk = Workbooks.Open(arr1(i))
        wb1 = wkbk.Name
        Set sht = wkbk.Worksheets(wkbk.Sheets(1).Name)
        wkbk.Sheets(sht.Name).Copy After:=ThisWorkbook.Sheets("START")
        ActiveSheet.Name = "NEW"
'        MsgBox wkbk.Name
'        ThisWorkbook.Sheets.Add.Name = "NEW"
'        wkbk.Sheets(sht.Name).Cells.Copy
'        ThisWorkbook.Sheets("NEW").Cells.Paste
        wkbk.Close False
    Next i
End Sub

有没有办法获得与手动执行相同的结果?

VBasic2008

导入CSV文件

Option Explicit

Sub importCSV()
    
    Const InitialFolderPath As String = "F:\Test\2021"
    Const FilePattern As String = "*.csv"
    
    Dim dwb As Workbook: Set dwb = ThisWorkbook
    
    Dim FolderPath As String
    If Right(InitialFolderPath, 1) = "\" Then
        FolderPath = InitialFolderPath
    Else
        FolderPath = InitialFolderPath & "\"
    End If
        
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    With fd
        .Title = "Select"
        .AllowMultiSelect = False
        .InitialFileName = FolderPath
        If .Show = False Then
            MsgBox "You canceled."
            Exit Sub
        End If
        FolderPath = .SelectedItems(1) & "\"
    End With
    
    Dim arl As Object: Set arl = CreateObject("System.Collections.ArrayList")
    Dim FileName As String: FileName = Dir(FolderPath & FilePattern)
    Do While FileName <> ""
        arl.Add FolderPath & FileName
        FileName = Dir
    Loop
    
    Application.ScreenUpdating = False
    
    Dim swb As Workbook
    Dim sws As Worksheet
    Dim dws As Worksheet
    Dim shId As Long
    Dim i As Long
    For i = 0 To arl.Count - 1
        Set swb = Workbooks.Open(FileName:=arl(i), Local:=True)
        Set sws = swb.Worksheets(1)
        sws.Copy After:=dwb.Sheets(dwb.Sheets.Count)
        Set dws = ActiveSheet
        shId = shId + 1
        On Error GoTo NewSheetError
        dws.Name = "New" & shId
        On Error GoTo 0
        swb.Close False
    Next i
    'dwb.Save
    
    Application.ScreenUpdating = True
    
    Exit Sub
    
NewSheetError:
    shId = shId + 1
    Resume

End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将Excel工作表中的文本和图表复制到Outlook正文?

来自分类Dev

如何将附加值复制到 Excel 工作表中的单元格

来自分类Dev

使用Excel VBA将工作表复制到新工作簿中并对新工作簿进行更改

来自分类Dev

如何将每个工作表复制到新工作簿中并保留格式

来自分类Dev

将粘贴复制到Excel中的新工作表

来自分类Dev

excel VBA,在将多个CSV文件复制到一个工作簿中的单元格中创建带有工作表或文件名的列

来自分类Dev

excel VBA,在将多个CSV文件复制到一个工作簿中的单元格中创建带有工作表或文件名的列

来自分类Dev

如何将整个txt文件复制到Excel

来自分类Dev

如何将内部打包文件复制到Java中的工作目录中?

来自分类Dev

如何将powerpivot数据作为表格复制到excel工作簿中?

来自分类Dev

将csv文件复制到PostGIS表中

来自分类Dev

如何将整个SQL Server表(包括列标题)复制到CSV中?

来自分类Dev

Excel Interop:如何将工作表复制到另一个工作簿?

来自分类Dev

如何将列从多个工作簿中的特定工作表合并或复制到新工作簿?

来自分类Dev

如何将所有数据从Sql Server 2008中的表复制到文件

来自分类Dev

如何将工作表内容复制到另一个工作表?

来自分类Dev

如何将整行从Google工作表自动复制到另一工作表

来自分类Dev

如何将行从其他工作表复制到目标工作表?

来自分类Dev

如何将ActiveX控件复制到另一个工作表中以防止控件名称更改

来自分类Dev

Excel宏:将数据复制到新工作表中,然后根据日期和随机数进行排序

来自分类Dev

Excel宏:将数据复制到新的工作表中,然后根据日期和随机数进行排序

来自分类Dev

在Perl中,如何将列的子集从XLSX工作表复制到另一个?

来自分类Dev

如何将列中具有特定值的行复制到另一个工作表?

来自分类Dev

如果满足工作表 1 中的条件,如何将单元格从工作表 1 复制到工作表 2(按特定顺序)

来自分类Dev

如何将一个工作表中的单元格复制到另一个工作表中,到正确的行

来自分类Dev

尝试将Range从工作表复制到新工作簿中。Excel VBA

来自分类Dev

使用VBA将范围从Excel工作表复制到PowerPoint中的表

来自分类Dev

Microsoft Excel-如何将行从一个工作表复制到另一个通过值过滤的工作表

来自分类Dev

excel-如何将所有工作表从一个工作簿复制到另一个工作簿

Related 相关文章

  1. 1

    如何将Excel工作表中的文本和图表复制到Outlook正文?

  2. 2

    如何将附加值复制到 Excel 工作表中的单元格

  3. 3

    使用Excel VBA将工作表复制到新工作簿中并对新工作簿进行更改

  4. 4

    如何将每个工作表复制到新工作簿中并保留格式

  5. 5

    将粘贴复制到Excel中的新工作表

  6. 6

    excel VBA,在将多个CSV文件复制到一个工作簿中的单元格中创建带有工作表或文件名的列

  7. 7

    excel VBA,在将多个CSV文件复制到一个工作簿中的单元格中创建带有工作表或文件名的列

  8. 8

    如何将整个txt文件复制到Excel

  9. 9

    如何将内部打包文件复制到Java中的工作目录中?

  10. 10

    如何将powerpivot数据作为表格复制到excel工作簿中?

  11. 11

    将csv文件复制到PostGIS表中

  12. 12

    如何将整个SQL Server表(包括列标题)复制到CSV中?

  13. 13

    Excel Interop:如何将工作表复制到另一个工作簿?

  14. 14

    如何将列从多个工作簿中的特定工作表合并或复制到新工作簿?

  15. 15

    如何将所有数据从Sql Server 2008中的表复制到文件

  16. 16

    如何将工作表内容复制到另一个工作表?

  17. 17

    如何将整行从Google工作表自动复制到另一工作表

  18. 18

    如何将行从其他工作表复制到目标工作表?

  19. 19

    如何将ActiveX控件复制到另一个工作表中以防止控件名称更改

  20. 20

    Excel宏:将数据复制到新工作表中,然后根据日期和随机数进行排序

  21. 21

    Excel宏:将数据复制到新的工作表中,然后根据日期和随机数进行排序

  22. 22

    在Perl中,如何将列的子集从XLSX工作表复制到另一个?

  23. 23

    如何将列中具有特定值的行复制到另一个工作表?

  24. 24

    如果满足工作表 1 中的条件,如何将单元格从工作表 1 复制到工作表 2(按特定顺序)

  25. 25

    如何将一个工作表中的单元格复制到另一个工作表中,到正确的行

  26. 26

    尝试将Range从工作表复制到新工作簿中。Excel VBA

  27. 27

    使用VBA将范围从Excel工作表复制到PowerPoint中的表

  28. 28

    Microsoft Excel-如何将行从一个工作表复制到另一个通过值过滤的工作表

  29. 29

    excel-如何将所有工作表从一个工作簿复制到另一个工作簿

热门标签

归档