Vba 如何从范围中创建新文件

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

我想从工作表“lista strategiczna”.D2创建新文件(在同一文件夹中),但前提是该工作表不存在。下一步向下偏移一个位置,并创建下一个文件等。我做错了什么

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)