2016-11-22 30 views
1

このスクリプトを修正して、特定の列のみを検索して置き換える方法を教えてください。特定のExcelの列で検索および置換する

Set xl = CreateObject("Excel.Application") 
    xl.Visible = True 
Set wb = xl.Workbooks.Open("C:\Users\test.xlsx") 
Set ws = wb.Sheets("Sheet1") 

Set objRange = ws.Range("Q1").End(xlDown).Select 
objRange.Replace "~*", "" 

現在のスクリプトは、Set objRange行にエラーが発生します。シート全体で*を置き換えると、式に干渉することになります。

+1

このエクセルVBAまたはVBScriptですか?前者の場合は、タグを変更します。後者の場合、 'ActiveSheet'はVBScriptで定義されていません。 –

+0

これはタイトルとしてvbscriptであり、タグには次のように書かれています。 – user24

+0

驚くほど多くの人がExcelのスクリプト言語をVBScriptと混同しています。あなたのコードは 'ActiveSheet'を使います。これはVBScriptよりもVBAで理にかなっています。それがVBScriptの場合、 'ActiveSheet'は' Set ActiveSheet = xlApp.ActiveSheet'(Excelアプリケーションに使用している変数であれば 'xlApp'を置き換えます)のような別の変数です。なぜ列を選択しようとしているのかは分かりません。範囲を検索するために選択する必要はありません。 –

答えて

1

あなたは複雑すぎると思っています。ちょうどあなたが全体Q列をしたいRangeプロパティを伝え、そのRangeオブジェクトに直接Replaceメソッドを呼び出します。

ws.Range("Q:Q").Replace "~*", "" 
+0

Ansgarありがとうございました、あなたの提案は完璧に機能しました。 – user24

関連する問題