2017-06-22 9 views
0

私はVBAマクロをExcelで使用していましたが、それは数日間は正常に動作しましたが、今日は起動しても機能しません。面白いのは、Excelファイルやマクロに変更が加えられていないということです。VBAエクセルマクロがテキストボックスの表示を停止しました

マクロはボタンに接続され、CSVExportRangeという名前のTextBoxからデータを取得します。

:私はそれを起動しようとすると、私は

私はテキストフィールドの値に基づいて範囲を設定する行の

エラー「オブジェクトはこのプロパティまたはメソッドをサポートしていません」を取得します

Dim r As Range 
Set r = Range(Application.ActiveSheet.CSVExportRange.Value) 

私はそれを試してみましたし、それは今ではすべてのTextBoxを見ていないが判明:

Dim a As Worksheet 
Dim k As TextBox 

Set a = Application.ActiveSheet 
Set k = Application.ActiveSheet.CSVExportRange 

上記の場合、「オブジェクトはこのプロパティまたはメソッドをサポートしていません」というエラーの最後の行でデバッグが中断します。

私はTextBoxの設定を正しくしており、前回すべてが正常に動作してから変更していません。

screen

は何が悪いのでしょうか?

+1

スクリーンショットが 'CSVExportPath'、ない' CSVExportRange'を示したです。 – GSerg

+0

あなたが正しいです、私は画面上でマウスのスクロールを動かさなければならず、選択が変わったはずです。 CSVExportRangeも同じ方法で設定されています(私は新しいスクリーンショットを追加しましたが、私の投稿を編集することも、ここのコメントに追加することもできません)。 – ilozen

+0

csvexportrangeの値は文字列の範囲として存在しますか(例: "$ a $ 1")?空ではない?どのようにcsvexportrangeを設定しますか? –

答えて

0

Excelが2回再起動された原因はわかりません... すべてのExcelファイルを閉じて再起動したときのように、まだ動作していませんでした。もう一度やり直してからもう一度作業を始めました。

なお、どちらも、それは誰か/何か他のもの、いくつかのファイルをロックした場合ではありませんので、リモート/ネットワーク/共有ファイル...

+0

おそらく、再起動の前に間違ったシートが 'ActiveSheet'でした。 'ActiveSheet'を使うと、人々が間違って使うので、ほとんどの場合、奇妙な問題が発生します。 'ActiveSheet'の使用を避けることはお勧めできません。常にシートを正確に' Worksheets( "MySheetName")という名前で指定するようにしてください。マクロは常に現在どのシートがアクティブであるかに関係なく正しいシートを参照します。また、[VBAベストプラクティス:ExcelでのActiveCellまたはActiveSheetの使用を避ける]を参照してください(https://stackoverflow.com/documentation/excel-vba/1107/vba-best-practices/7264/avoid-using-active-cell-act-activesheet- in-excel)。 –

関連する問題