VBA将同一位置的不同types的工作簿保存两次

嗨,我有一些代码,似乎在家里的电脑很好,但只要我在工作中尝试他们似乎并不工作。 真奇怪。 有任何想法吗?

脚本的想法是

  1. 问一个popup的名字
  2. 请求一个位置来保存
  3. 然后会移动一些东西。
  4. 那么它会将步骤1中给定的名称保存为xlsm的工作簿。
  5. 那么它将再次保存工作表为xml,并在步骤1中给出名称,但是将文本“-upload”添加到之前在步骤2中select的位置。

我知道这似乎很奇怪,但它对一些而不是其他人,任何理由呢? 我得到的错误是

运行时错误“1004”:文件无法访问。 尝试以下方法之一:

  • 使指定的文件夹存在。

  • 确保包含该文件的文件夹不是只读的。

  • 确保文件名不包含以下任何字符:<>? []:| 要么 *

  • 确保文件/path名称不超过218个字符。

欢迎任何帮助。 我有的代码是

Sub save_as_xlsm_and_XML() Dim filename Dim XML_Name_Complete Dim XLSM_Name Dim Temp_Name Dim fldr As FileDialog Dim sItem As String Dim Last_Column As Long filename = ActiveWorkbook.Name Temp_Name = InputBox("Enw Dosbarth") If Temp_Name = "" Then Exit Sub Set fldr = Application.FileDialog(msoFileDialogFolderPicker) With fldr .Title = "Select a Folder" .AllowMultiSelect = False .InitialFileName = strPath If .Show <> -1 Then GoTo NextCode sItem = .SelectedItems(1) End With XLSM_Name = sItem & "\" & Temp_Name XML_Name_Complete = sItem & "\" & Temp_Name & "-lanlwythiad" Application.ScreenUpdating = False ' turn off the screen updating 'Moving data from final_before_copy to adroddiad Sheets("Final_Before_Copy").Select Rows("8:250").Select Selection.Copy ActiveWindow.ScrollWorkbookTabs Sheets:=-1 Sheets("adroddiad").Select Rows("8:8").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Rows("1:4").EntireRow.Hidden = True ' Arbed fel XML ' Cells.Select Selection.Copy Workbooks.Add ActiveSheet.Paste ActiveWindow.DisplayGridlines = False ActiveWindow.DisplayHeadings = False Range("a1").Select ActiveSheet.Name = "Adroddiad" Sheets("Sheet2").Select ActiveWindow.SelectedSheets.Delete Sheets("Sheet3").Select ActiveWindow.SelectedSheets.Delete ChDir sItem ActiveWorkbook.SaveAs filename:=XML_Name_Complete _ , FileFormat:=xlXMLSpreadsheet, CreateBackup:=True If XML_Name_Complete = False Then Exit Sub Application.DisplayAlerts = False ActiveWorkbook.Close True 'Arbed fel xlsm' ThisWorkbook.Activate Sheets("Marciau").Select Range("A6").Select ChDir sItem ActiveWorkbook.SaveAs filename:=XLSM_Name _ , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False Application.DisplayAlerts = False Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",False)" Application.ScreenUpdating = True ' turn on the screen updating successful_export = MsgBox("Adroddiad wedi ei arbed ac allforio yn lwyddiannus", , "System Adroddiadau") NextCode: GetFolder = sItem Set fldr = Nothing End Sub