2

マクロの実行時に数式が入力されるセルを動的に設定しようとしています。このコード ブロックは約 10 回ループし、それぞれに新しいセクションの従業員が含まれます。部門別に並べました。したがって、ループがこの時点に戻ると、最初のセルが変更されます。

次のエラーが表示されます。

オブジェクト '_Global' のメソッド 'Range' が失敗しました

これが私のコードです:

'Select the top cell in the "%Working" Column

Range(Cells(StartTemp, 9)).Select

'Insert the Formula - Billable/(Billable + Unbillable) * 100 into Column I for each section
'Formula is 'C4/(C4+C5)*100

Range(Cells(StartTemp, 9)).Formula = "=RC[-6]/(RC[-6]+RC[-5]) *100" 
Range(Cells(StartTemp, 9)).Select
Selection.NumberFormat = "0.00%"

'Insert the Formula into all cells in the section for this group.

Selection.AutoFill Destination:=Range(Cells(StartTemp, 9), Cells(EndTemp, 9)), Type:=xlFillDefault    

Range(Cells(StartTemp, 9), Cells(EndTemp, 9)).Select

前もって感謝します!

4

1 に答える 1

4

使用しているため、そのエラーが発生していますRange(Cells(StartTemp, 9))

で使用RangeするCells場合、1 つのセルだけを使用することはできません。構文は次のとおりです。

範囲(セル1、セル2)

ここに画像の説明を入力

これにより、エラーが発生します:)

Msgbox Range(Cells(1, 1)).Address 

ここに画像の説明を入力

の使用も避けてください.Select。また、エラーの主な原因でもあります。

コードをこれに変更して、もう一度試してください (未テスト)

With Cells(StartTemp, 9)
    .Formula = "=RC[-6]/(RC[-6]+RC[-5]) * 100"
    .NumberFormat = "0.00%"
    .AutoFill Destination:=Range(Cells(StartTemp, 9), Cells(EndTemp, 9)), Type:=xlFillDefault
End With

今すぐ試してみてください。

于 2012-04-10T19:49:27.843 に答える