Vba 将前3列从不同工作表复制到单个文件
我有一堆数据集,它们的工作表总是一样的 现在我想为每个工作表创建一个不同的文件。我发现一些代码正是这样做的: 但是,我也只想要这些工作表的前三列,最好总是从第2行开始 谁能给我指一下正确的方向吗。例如,关于如何更改我发布的代码。请尝试以下代码:Vba 将前3列从不同工作表复制到单个文件,vba,excel,worksheet,Vba,Excel,Worksheet,我有一堆数据集,它们的工作表总是一样的 现在我想为每个工作表创建一个不同的文件。我发现一些代码正是这样做的: 但是,我也只想要这些工作表的前三列,最好总是从第2行开始 谁能给我指一下正确的方向吗。例如,关于如何更改我发布的代码。请尝试以下代码: Sub Splitbook() Application.ScreenUpdating = False Dim myPath As String Dim rng As Range Dim sht As Worksheet
Sub Splitbook()
Application.ScreenUpdating = False
Dim myPath As String
Dim rng As Range
Dim sht As Worksheet
Dim lastRow As Long
Dim wkb As Workbook
For Each sht In ThisWorkbook.Sheets
lastRow = sht.Range("A6500").End(xlUp).Row
If lastRow < 2 Then GoTo nextSht
Set rng = sht.Range("A2:C" & lastRow)
If Not rng Is Nothing Then
Set wkb = Workbooks.Add
rng.Copy wkb.Sheets(1).Range("A2")
myPath = filePath(sht.Name)
wkb.SaveAs Filename:=myPath
wkb.Close
Set wkb = Nothing
Set rng = Nothing
End If
nextSht:
Next
Application.ScreenUpdating = True
End Sub
Function filePath(worksheetname As String) As String
Dim fso As Object, MyFolder As String
Set fso = CreateObject("Scripting.FileSystemObject")
MyFolder = ThisWorkbook.Path & "\Reports"
If fso.FolderExists(MyFolder) = False Then
fso.CreateFolder (MyFolder)
End If
MyFolder = MyFolder & "\" & Format(Now(), "MMM_YYYY")
If fso.FolderExists(MyFolder) = False Then
fso.CreateFolder (MyFolder)
End If
filePath = MyFolder & "\" & worksheetname & Format(Now(), "DD-MM-YY hh.mm.ss") & ".xlsx"
Set fso = Nothing
End Function
我没有看到该链接中的代码,我只看到一个功能区管理的加载项。用VBA做这件事不会太难。让我指给你Alt+F11,VBA在你的支配下。现在,作为一个程序员,StAcExver是程序员的一个平台,我希望您能够编写代码,考虑到这一点,请考虑使用Excel电子表格窗口中的记录宏按钮来记录要编码的活动。停止录制并切换到VBA窗口以查看结果,然后使用该窗口自动执行您的想法。