1

以下のようにシート名に変数を使用しようとすると、RunTime 13 エラーが発生します。

Sub inputdata()

Set asheet1 = ThisWorkbook.Worksheets("input").Range("D12")
Set rangeDate = ThisWorkbook.Worksheets("input").Range("inputdate")

Range("F12:M12").Copy
Sheets(asheet1).Select

行 Sheets(asheet1).Select でエラーが発生しています。

どんな助けでも大歓迎です!

4

2 に答える 2

4

asheet1 は文字列ではありません。範囲オブジェクトをそれに割り当てています。asheet1 を文字列として宣言し、この行を次のように変更する必要があります

Dim asheet1 as string
asheet1 = ThisWorkbook.Worksheets("input").Range("D12").Value

これでうまくいくはずです!

編集

文字列 var から Set キーワードを削除しました。

于 2013-04-17T13:43:00.720 に答える
1
Option Explicit

Sub inputdata()
dim inputSheet as WorkSheet
dim aCellOnInputSheet as Range
dim inputDateCell as Range
dim userSheetName as String


Set inputSheet = ThisWorkbook.Worksheets("input") 

Set aCellOnInputSheet = inputSheet.Range("D12")
userSheetName = aCellOnInputSheet.Value
Set inputDateCell = inputSheet.Range("inputdate")

Range("F12:M12").Copy
Sheets(userSheetName).Select

End Sub

編集: いくつかのポイント
1)Option Explicitは必須です。
2) 変数を定義し、適切な名前を付けます。つまり、代わりに名前範囲を使用してセル/範囲を参照する変数を定義しますaSheet-リーダーを混乱させます

于 2013-04-17T13:42:23.627 に答える