2013-05-13 3 views
1

워크 시트 2를 타임 스탬프가있는 CSV 파일로 저장해야하는 하위 문서를 작성했습니다. 나는 사용자가 클릭 '좋아'프로그램이 실패하고 말할 때, 다음워크 시트 저장 실패

run time error 9, subscript out of range. 

당신이 나를 왜 내 프로그램이 diong된다/알아내는 데 도움 주실 사용자가 GET 경로 하위에 파일 경로를 선택할 수 있습니다? 여기

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

즉시/디버그 창에이 코드의 출력을 제공하십시오 :'? ActiveWorkbook.Worksheets ("Sheet2"). rows.count' 문제가있는 오류가 발생하는 경우. –

+2

"sheet2"또는 "Sheet2"라는 시트가없는 것 같습니다. –

+0

@Philip, 당신은 "그것이 문제"라고 말합니다. 그게 무슨 문제 야? –

답변

0

그래서 난 그냥 경우에 당신에게 내 솔루션을 보여주지 내 GET 경로 기능 당신의 관심이 : 이름이 전에

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로 다시 변경했습니다.

입력 해 주셔서 감사합니다.