システムwiki

Application定義またはオブジェクト定義のエラー

CodeNum 受付中 最終更新日:2021-06-14 04:04

私はこのマクロをファイルで実行しています&私は断続的にランタイムエラー1004Application定義またはオブジェクト定義のエラーを取得しています.

私が下の線で太字でハイライトをデバッグするとき.

これは、先週の別のファイルの同じ行にまったく同じエラーで起こりました.

サブLogQuote()

'logquoteマクロ
'Sharonによるマクロ15/06/2007は、丸太番号10/02/2015を丸めるために引用番号の代わりにファイル名を追加することを修正しました
ThisWorkbookを文字列として薄暗くする
薄暗いSheetName
DIM MYRANGES(16)文字列として
in整数としての薄暗い入り口 範囲を通る範囲を介して整数として薄暗いAを薄暗くする
ThisWorkbook= ActiveWorkbook.Name
SheetName= ActiveSheet.Name
'myranges(1)= "qdata1"見積もりは、2015年2月B 2015 "qdata1"からファイル名に変更されました. myranges(1)= "qdata2"顧客名-col c
myranges(2)= "qdata3" 'value ex-works-col d
myranges(3)= "qdata4"の影響接触-col e
myranges(4)= "qdata5"チェイス日-col f
myranges(5)= "qdata6" '国-col g
myranges(6)= "qdata7"のテンプレート版-col h
myranges(7)= "qdata8"通貨-col i
myranges(8)= "qdata9"時間-col j
myranges(9)= "qdata10" ref/title-col k
myranges(10)= "qdata11"コード-COL L
myranges(11)= "qdata12"の世界地域-col m
myranges(12)= "qdata13" '郵便番号-col n
myranges(13)= "qdata14" 'CustOnt-col o
myranges(14)= "qdata15" 'Cust Eメール-col p
myranges(15)= "q data16" 'cust tel no-col q
myranges(16)= "qdata17" 'Cust口頭

'列aのログ日付
'コメントは最後の列にあります
WorkBooks.Open filename:= _
"s:\templates\quotes\quote_log.xls"
ワークブック( "quote_log.xls").

ワークブック( "quote_log.xls")を使って
・シート(「引用」).

ActiveSheet
'空の行を見つける
EmptyRow= 0

EmptyRow= Emptyrow + 1
IsEmptyまでループ(.cells(EmptyRow、1))
.Cells(EmptyRow、1)=日付
'log filename in列b
.cells(EmptyRow、2)= thisWorkbook
'名前付き範囲から他の列(A + 2=開始列C)を入力します. a= 1からubound(myranges)に
.セル(Emplyrow、A + 2)= _ワークブック(ThisWorkbook).Sheets(SheetName).Range(myranges(a))
次のa


'ワークブックを保存して閉じる
.save

閉じる

'起動した場所に戻る ワークブック(ThisWorkbook).アクティブ
終了SUB

返信リスト(回答:3)

1 #
OssieMa

もう一つのエラー

デフォルトのゼロを最初の要素として使用しているため、配列は1つのベースの配列として寸法決めされます.あなたのプロジェクトでオプションベース1を設定しましたか?もしそうなら、すべてが大丈夫です.

ただし、オプションベース1が設定されていない場合、アレイは次のように寸法決めされ、要素は1から16です.

DIM MYRANGES(1~16)文字列

オプションBASE 1を使用せずに行ったときの配列を寸法決めすると、要素が0から15です.

応答1# ->にスキップ
2 #
CodeNum

OSSIEMACあなたの返信の両方に感謝します.私は今週の休暇中ですので、私はあなたの提案された変更を加え、来週それに応じてあなたの返事をマークします.私の配列の問題は私がコードを編集したと思いました.
あなたはそれを私に指す時間を取っています.

3 #
OssieMa

ThisWorkbookは、VBAコードを含むワークブックを参照するオブジェクトである予約語です.あなたはそれをコードの上部にある文字列として寸法決めされています、そしてこれは正しくありません.

コード上部にある次の行を削除してください.

ThisWorkbookを文字列

として薄暗くします

問題のコード行を次のように編集します.

.cells(EmptyRow、A + 2)= _
ThisWorkbook.Sheets(SheetName).Range(myranges(a))