Userform
にはListbox
とエクスポートボタンがあります。リストボックスには、ブック内のすべてのシート名が一覧表示されます。リストボックスでシート名を選択してエクスポートをクリックして、貼り付けのみの値&(元のシートのフォーミュラとフォームボタンなし)を作成するコピーをデスクトップに作成したいと考えています。リストボックス内のシートのみをエクスポートする
リストボックスにシート名を表示するのに成功しましたが、エクスポートボタンのコードに問題がありますが、範囲外のエラーが発生します。
以上続いたり、コメントPrivate Sub CommandButton1_Click()
Dim lSht As Long
Dim wb As Workbook
Dim sPath As String
Dim sSheet As String
Dim NewWbName As String
Dim i As Long
'Set variables
Set wb = Workbooks.Add
'Add a filepath to your computer below
sPath = "C:\Users\" & Environ("USERNAME") & "\Desktop\"
NewWbName = "Reports " & Format(Now, "yyyy_mm_dd _hh_mm")
i = 1
'Loop through listbox
For lSht = 0 To Me.sheetlist.ListCount - 1
'check if items selected
If Me.sheetlist.Selected(lSht) = True Then
'copy out the sheet and saveas
sSheet = Me.sheetlist.List(lSht)
With wb.Worksheets(sSheet).Copy
.PasteSpecial (xlPasteValues)
.PasteSpecial (xlPasteFormats)
End With
Application.DisplayAlerts = False
wb.SaveAs Filename:=DesktopPath & NewWbName, FileFormat:=xlNormal
wb.Close
MsgBox "You can find the export file in your desktop.", vbOKOnly + vbInformation, "Back Up Sucessful!"
Application.DisplayAlerts = True
End If
Next lSht
End Sub
、あなたがエラーを取得していますか? 何か問題が起こったときに何が起こっているのかが助けになるでしょう – AndyW
この行には "subscript out of range"が表示されますwb.Worksheets(sSheet).Copy – Danny
With With wb.Worksheets(sSheet) 。また、あなたの 'wb.Worksheets(sSheet)'をどこにコピーしたいですか?目的地は何ですか?別のワークブック? –