1
Sub openwb()

Dim x260path As String

x260path = "E:\sarath\PTMetrics\20131002\D8 L538-L550 16MY\D8 L538-L550_16MY_Powertrain Metrics_" & Format(Date, "YYYYMMDD") - 1

Workbooks("x260path").Activate

ActiveWorkbook.SaveAs ["E:\sarath\PTMetrics\20131002\D8 L538-L550 16MY\D8 L538-L550_16MY_Powertrain Metrics_" & Format(Date, "YYYYMMDD")]

Debug.Print x260path

End Sub

ここで、実行すると、「添え字が範囲外です」というエラーが表示されます。文字列の代わりに「ワークブック」を使用して「x260path」を宣言すると、3 行目に「オブジェクト変数またはブロック変数が設定されていません」という別のエラーが表示されます。

4

1 に答える 1

1

=Today()VBA ではis Date()(*or Date)と同等の関数

x260path = CONCATENATE("..." & Date)

または、関数を使用しNow()ます(ただし、タイムスタンプも含まれます)

x260path = CONCATENATE("..." & Now)

debug.print Date 

2013/02/10

debug.print Now

2013/02/10 08:39:20


WorksheetFunction一部のスプレッドシート関数は、クラスで使用できます。例えば

Sub Main()

    Dim sum As Double
    sum = WorksheetFunction.sum(10, 20)
    MsgBox sum

End Sub

注: を入力するsum = WorksheetFunction.とすぐに.、VBA の Intelli-sense ヘルプが表示されます。これは、WorksheetFunction クラスで使用できるすべての関数のリストです。

ここに画像の説明を入力

あなたの場合、関数はVBAの演算子=Concatenateと同等です。&したがって、最も簡単な方法は、を使用して 2 つの文字列を結合することです。&

x260path = "C:\..." & date

使用しようとしている関数が Intelli-sense に存在しない場合は、独自の UDF を作成するか、関数のしくみとその上書き方法についてオンラインで調査することができます。

于 2013-10-02T07:33:32.957 に答える