0

現状では、元のファイルが存在するフォルダーにコードがファイルを作成する場所を書き留めています。同じコードを使用してファイルを作成し、SaveAs オプションを除いて機能すると考えましたが、オブジェクトが気に入らないようです。

理由はありますか?すべての意図された目的のために、ファイルを直接指している必要がありますが、同意していないようです...誰かが私が犯した間違いを見ることができますか?

Option Explicit

Sub OpenOrderReportExport()

    Dim wsJL As Worksheet   'Jobs List
    Dim wsPOT As Worksheet  'PO Tracking
    Dim wsTNO As Worksheet  'Tel-Nexx OOR
    Dim wbBK2 As Workbook   'New Workbook
    Dim wsWS1 As Worksheet  'Sheet1
    Dim wsWS2 As Worksheet  'Sheet2
    Dim wsWS3 As Worksheet  'Sheet3
    Dim CurrentFile As String, NewFileType As String, NewFile As String, Dir As String


    Set wsJL = Sheets("Jobs List")      'Jobs List
    Set wsPOT = Sheets("PO Tracking")   'PO Tracking
    Set wsTNO = Sheets("Tel-Nexx OOR")  'Tel-Nexx OOR
    Set wbBK2 = Workbooks.Add           'New Workbook
    Set wsWS1 = wbBK2.Sheets("Sheet1")  'Sheet1
    Set wsWS2 = wbBK2.Sheets("Sheet2")  'Sheet2
    Set wsWS3 = wbBK2.Sheets("Sheet3")  'Sheet3

        Application.ScreenUpdating = False    ' Prevents screen refreshing.
        CurrentFile = ThisWorkbook.FullName
        NewFileType = "Excel Files 2007 (*.xlsx)"
        Dir = ThisWorkbook.path
        wbBK2.SaveAs Dir & Application.PathSeparator & "Open Order Report -" & Format(Date, "mm-dd-yyyy") & ".xlsx"
        Set wbBK2 = Dir & Application.PathSeparator & "Open Order Report -" & Format(Date, "mm-dd-yyyy") & ".xlsx"

        MsgBox wbBK2
End Sub
4

1 に答える 1

2

コメントで既に示唆されているようにDir & Application.PathSeparator & "Open Order Report -" & Format(Date, "mm-dd-yyyy") & ".xlsx"、オブジェクトは作成されません。このコードは、VBA の通常のデータ型である文字列を返します。

set wbBK2 =set には参照するオブジェクトが必要なため、上記のコードを使用するとエラーが発生します。

余談ですが、Siddharth Rout が既に指摘したように、実際にはこの行でワーク ブックへの参照を正しく作成したSet wbBK2 = Workbooks.Addので、それ以上の set 行は不要です。

于 2012-09-05T14:31:00.420 に答える