Excel 如何使用文件名返回工作簿

Excel 如何使用文件名返回工作簿,excel,vba,Excel,Vba,我从主工作簿中提取选项卡,并用它们创建单独的工作簿。 然后我返回到原始主工作簿,循环浏览除主选项卡之外的所有选项卡。 我可以输入主工作簿文件名并返回,没有问题,但主工作簿文件名每次都可以更改。 我需要从主工作簿中获取文件名,并将其传递到我的VBA代码中以引用回它。 我想我离这里很近,但不太近 Sub Macro4() Dim WB As Workbook WB = GetThisWB2 Dim WSCount As Integer WSCount = Worksheets.Count Di

我从主工作簿中提取选项卡,并用它们创建单独的工作簿。 然后我返回到原始主工作簿,循环浏览除主选项卡之外的所有选项卡。 我可以输入主工作簿文件名并返回,没有问题,但主工作簿文件名每次都可以更改。 我需要从主工作簿中获取文件名,并将其传递到我的VBA代码中以引用回它。 我想我离这里很近,但不太近

Sub Macro4()

Dim WB As Workbook
WB = GetThisWB2
Dim WSCount As Integer
WSCount = Worksheets.Count


Dim allsheets As Integer                
allsheets = WSCount                     
Do While allsheets > 1

Sheets(allsheets).Select
Sheets(allsheets).Move
''----Windows("FILENAME").Activate this works
WB.Activate

allsheets = allsheets - 1                  
Loop

End Sub

Function GetThisWB()

GetThisWB = ThisWorkbook.Path & "\" & ThisWorkbook.Name
GetThisWB2 = ThisWorkbook.Name

End Function

根据您所描述的,我认为您正在尝试这样做:

Sub test()
Dim wK as worksheet

For each wK in thisworkbook.Worksheets
  if wK.Name <> "Master" then

      wk.copy
      Activeworkbook.saveas thisworkbook.path & "\" & wk.name & ".xlsx"
      Activeworkbook.close true

  End if
Next wK

Msgbox "Process Completed"
End Sub

你只是在移动床单。是否需要为每个工作表(主工作表除外)创建单独的工作簿?仅供参考:对于主工作表中的所有代码,您可以使用ThisWorkbook引用它,并使用ThisWorkbook.Name以字符串形式获取其名称。如果您在代码中使用此工作簿,它总是返回对代码所在工作簿的引用。Misetella:Ha!这么简单。非常感谢newguy:是的,一旦它们被拆分,我需要将它们保存在各自的工作簿中。那是下一个铲球