Excel VBA代码仅在我的新工作簿中保存了2张工作表中的1张

Excel VBA代码仅在我的新工作簿中保存了2张工作表中的1张,excel,vba,Excel,Vba,我从多张表格中提取数据,对其进行按摩,以便将数据加载到我们的网站。数据放在两张纸上。我的VBA代码只保存了新创建工作簿中两张工作表中的一张。不知道为什么 我所知道的保存新创建的电子表格的唯一代码是我唯一尝试过的 '创建输出文件 Dim newWB As Workbook, currentWB As Workbook Dim newA As Worksheet, newP As Worksheet, currentS As Worksheet Dim strFullname As String

我从多张表格中提取数据,对其进行按摩,以便将数据加载到我们的网站。数据放在两张纸上。我的VBA代码只保存了新创建工作簿中两张工作表中的一张。不知道为什么

我所知道的保存新创建的电子表格的唯一代码是我唯一尝试过的

'创建输出文件

Dim newWB As Workbook, currentWB As Workbook
Dim newA As Worksheet, newP As Worksheet, currentS As Worksheet
Dim strFullname As String

strFullname = "G:\CMG\DCM\Operations\Fusion (Website)\" & Format(Range("CurrentDate"), "yyyy") & "\" & " MonthlyImport" & " " & Format(Range("CurrentDate"), "mmddyy") & ".csv"

Set currentWB = ThisWorkbook
Set currentS = ShOutput '(this is the name of my worksheet)
ShOutput.Range("A:F").Select
Selection.Copy

Set newWB = Workbooks.Add
    With newWB
        Set newA = newWB.Sheets("Sheet1")
        newA.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

       ShOutput.Activate
       ShOutput.Range("H:L").Select
        Selection.Copy

       newWB.Worksheets.Add
        Set newP = newWB.Sheets("Sheet2")
        newP.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

        'Save in CSV
        Application.DisplayAlerts = False
        newWB.SaveAs Filename:=strFullname, FileFormat:=xlCSV
        newWB.Close
        Application.DisplayAlerts = True
    End With

我希望有一个包含两张数据的工作簿

,正如BigBen评论的那样,以
xlCSV
格式保存只会保存活动的工作表

如果要同时保存所有工作表,则需要通过省略FileFormat(将以使用的Excel版本的格式保存)或指定其中一种工作簿格式将其另存为工作簿

或者,如果要将两张工作表保存为单独的CSV,则必须循环浏览每张工作表,使其处于活动状态,然后可以将工作簿保存为
xlCSV
格式,每次为其指定不同的名称


参见前面的回答,例如代码

您不能用两张图纸保存CSV。CSV文件没有图纸,因此您不能将多张图纸保存到.CSV文件中。如果需要保存多个文件,则需要保存到多个.csv文件(每个工作表一个)或将所有数据合并到一个工作表中以保存到一个.csv文件