2016-08-09 13 views
1

を選択しますので、私はここで他のポストに選択し、Activateを使用して回避する方法を見ていた:エクセル2013 VBAの代替と

How to avoid using Select in Excel VBA macros

しかし、他のポストはまだどのように言及して失敗したことを私は、Activateを使用して回避するか、または以下の例のようないくつかのVBAコードをで選択できます。私は、このコードは私にエラーを与えるので.Selectを使用しないようにする方法も.Activateとを使用して避けることができる方法を理解する必要が

ThisWorkbook.Sheets("Data").Activate 
ThisWorkbook.Sheets("Data").Select 
Range("A1").Select 
Range(Selection, Selection.End(xlToRight)).Select 
With Selection.Interior 
    .PatternColorIndex = xlAutomatic 
    .ThemeColor = xlThemeColorDark1 
    .TintAndShade = -0.149998474074526 
    .PatternTintAndShade = 0 
End With 

これらのうちの両方..... .....

これらのエラーは、助けてください

...私はエクセル2013エクセル2010からアップグレードした後に起こって開始!

答えて

1

キーはいつものような方法で、完全なリファレンスを使用することです:あなたは、あなたが最初に何かを選択する必要はありませんんが、あなたが直接セルに対応できる場合

ExcelFile.SheetInFile.CellOrRangeOnSheet.PropertyOfSaidCellOrRange = something

か範囲のプロパティ(値または内部色など)あなたが明示的に現在アクティブまたは選択したセルが使用されているものを参照するために失敗するたびので、あなたのコードは、単に間でselectionが必要であることを

With ThisWorkbook.Sheets("Data") 
    With .Range(.Range("A1"), .Range("A1").End(xlToRight)).Interior 
     .PatternColorIndex = xlAutomatic 
     .ThemeColor = xlThemeColorDark1 
     .TintAndShade = -0.149998474074526 
     .PatternTintAndShade = 0 
    End With 
End With 

注:あなたのコードの上で

は、基本的に次のように変換します。 VBAはRange(Selection, Selection.End(xlToRight)).SelectActiveWorkbook.ActiveWorksheeet.Range.....etc.を参照すると仮定する必要がないため、毎回ファイル、シート、セル、および範囲を完全に明示的に記述すると、それらを選択する必要はありません。