我写了一个sub,它应该将工作表2保存为带有时间戳的csv文件。我让用户选择带有get path sub的文件路径,然后当用户点击'okay'时程序失败并说
run time error 9, subscript out of range.
你能帮我弄清楚我的节目在哪里/为什么这个?
Public Sub save()
Dim x As Integer
Dim FName As String
x = MsgBox("Are you sure?!?", vbYesNo, "Send File")
If x <> vbYes Then
GoTo Send_file_end:
End If
FName = get_path & "cambs_uplaoded_trades" & Format(Time, "hh mm ss") & ".csv"
ActiveWorkbook.Worksheets("sheet2").SaveAs Filename:=FName, FileFormat:=xlCSV
MsgBox "saved "
Send_file_end:
End Sub
这是我的获取路径功能
Function get_path() As String
Dim dlg As Variant
Set dlg = Application.FileDialog(msoFileDialogFolderPicker)
dlg.AllowMultiSelect = False
If dlg.Show <> -1 Then
get_path = ""
Else
get_path = dlg.SelectedItems(1) & "\"
End If
End Function
答案 0 :(得分:0)
所以我会告诉你我的解决方案以防你感兴趣:
Sheets("Sheet2").Activate
FName = get_path & "cambs_uplaoded_trades" & Format(Time, "hh mm ss") & ".csv"
ActiveWorkbook.Worksheets("Sheet2").SaveAs Filename:=FName, FileFormat:=xlCSV
MsgBox "saved "
ActiveSheet.Name = "Sheet2"
Sheets("Sheet1").Activate
所以我在更改名称之前激活了第二张,然后将其保存,然后我将活动工作的名称改回了sheet2。
感谢您的投入!