次の方法で共有

エクセルVBA 参照ファイルに書き込み出来ない

Anonymous
2021-09-27T01:59:37+00:00

エクセル2016の振る舞いがエクセル2003と異なる
何とかしたいが、エクセル2003では何の問題も無い。
Workbooks(Csvbook).Worksheets(CSV_SHEET_NAME).Range(Cells(Line, 1), Cells(Line, 234)) = VAL()
または
Worksheets(CSV_SHEET_NAME).Cells(Line, N).Value = UserForm1.Controls("TextBox" & Format$(N)).Text
実行時エラー'1004':アプリケーション定義またはオブジェクト定義のエラーです。
で処理事止まるが継続で正常動作する。
プログラム変更後ビルド前では思ったように動作する。
別のエラー発報後はサクサク動作する。
2003と2016の見た目は
2003では参照CSVウインドウがActivateのままである
解決策ご教示頂けないでしょうか。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

3 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2021-09-28T00:44:44+00:00

    ありがとうございます

    2003で10年以上動いていたのですが

    With式に変更してこの部分は動作しましたが別の問題が・・・

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2021-09-27T07:10:53+00:00

    > 実行時エラー'1004':アプリケーション定義またはオブジェクト定義のエラーです。> 2003と2016の見た目は> 2003では参照CSVウインドウがActivateのままである> Workbooks(Csvbook).Worksheets(CSV_SHEET_NAME).Range(Cells(Line, 1), Cells(Line, 234))

    Worksheet オブジェクトの Range プロパティに対して
    別の Worksheet オブジェクト(この場合はアクティブシート)に
    含まれる Range オブジェクトを渡しているため。
    (バージョンの違いは直接関係していない)


    With Workbooks(Csvbook).Worksheets(CSV_SHEET_NAME)
        .Range(.Cells(Line, 1), .Cells(Line, 234)).Value = VAL
    End With
    

    あと VAL という変数名はあまり推奨できません( Val 関数と競合するので)。

    > Worksheets(CSV_SHEET_NAME).Cells(Line, N).Value

    同様に、アクティブブックに存在しない Worksheet オブジェクトを
    参照しようとしているからでは。
    (その際に発生する実行時エラーは 1004 ではなく 9 のはず)

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2021-09-27T05:14:10+00:00

    VBA専用のフォーラムがございますため、下記へご投稿してみてください。

    https://social.msdn.microsoft.com/Forums/ja-JP/...

    どうぞ宜しくお願い致します。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません