Vba 如何从范围中创建新文件
我想从工作表“lista strategiczna”.D2创建新文件(在同一文件夹中),但前提是该工作表不存在。下一步向下偏移一个位置,并创建下一个文件等。我做错了什么Vba 如何从范围中创建新文件,vba,excel,Vba,Excel,我想从工作表“lista strategiczna”.D2创建新文件(在同一文件夹中),但前提是该工作表不存在。下一步向下偏移一个位置,并创建下一个文件等。我做错了什么 Sub TworzenieZamowien() Dim thisWb As Workbook Dim nazwaPliku As String Set thisWb = ActiveWorkbook Dim aktywnaKomorka As Range Set aktywnaKomork
Sub TworzenieZamowien()
Dim thisWb As Workbook
Dim nazwaPliku As String
Set thisWb = ActiveWorkbook
Dim aktywnaKomorka As Range
Set aktywnaKomorka = Sheets("lista strategiczna").Range("D2")
Dim FilePath As String
FilePath = Dir(ActiveWorkbook.Path, vbDirectory)
Do Until aktywnaKomorka = ""
nazwaPliku = thisWb.Path & "\Zamówienie " & aktywnaKomorka & ".xls"
If FilePath <> nazwaPliku Then
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=nazwaPliku
ActiveWorkbook.Close savechanges:=False
aktywnaKomorka.Offset(1, 0).Select
Else
aktywnaKomorka.Offset(1, 0).Select
End If
Loop
End Sub
Sub-TworzenieZamowien()
将此WB设置为工作簿
作为字符串的Dim nazwaPliku
设置thisWb=ActiveWorkbook
Dim aktywnaKomorka As系列
设置aktywnaKomorka=Sheets(“lista strategiczna”)。范围(“D2”)
将文件路径设置为字符串
FilePath=Dir(ActiveWorkbook.Path,vbDirectory)
直到aktywnaKomorka=“”
nazwaPliku=thisWb.Path&“\Zamówienie”&aktywnaKomorka&“.xls”
如果文件路径为nazwaPliku,则
工作手册。添加
ActiveWorkbook.SaveAs文件名:=nazwaPliku
ActiveWorkbook.Close savechanges:=False
aktywnaKomorka.Offset(1,0)。选择
其他的
aktywnaKomorka.Offset(1,0)。选择
如果结束
环
端接头
我会在一开始就设置你的范围,使用For循环,不选择任何东西(很少是个好主意)。您当前的代码没有更改(它仍然是D2),您只需激活下面的下一个单元格,但您的循环不会引用活动单元格
Sub TworzenieZamowien()
Dim thisWb As Workbook
Dim nazwaPliku As String
Set thisWb = ActiveWorkbook
Dim aktywnaKomorka As Range
With Sheets("lista strategiczna")
Set aktywnaKomorka = .Range("D2", .Range("D" & Rows.Count).End(xlUp))
End With
Dim FilePath As String, r As Range
FilePath = Dir(ActiveWorkbook.Path, vbDirectory)
For Each r In aktywnaKomorka
If r <> vbNullString Then
nazwaPliku = thisWb.Path & "\Zamówienie " & r & ".xls"
If FilePath <> nazwaPliku Then
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=nazwaPliku
ActiveWorkbook.Close savechanges:=False
End If
End If
Loop
End Sub
set aktywnaKomorka=aktywnaKomorka.Offset(1, 0)