2016-08-21 19 views
0

プログラム内の行を参照して内部の色を変更しようとしましたが、行全体を処理できますが、データが1列しかない場合は表示されません(行全体が灰色で表示されます)。 1列のデータがあってもページの最後まで)。だから私はちょうど行の終わりの範囲を使用しようとしましたが、私はオブジェクトのエラーのエラーを取得しています。オブジェクトの範囲がグローバルに失敗しました

ws1.Rows(i).Copy 
ws4.Cells(z, 1).PasteSpecial 
'ws4.Rows(z).Interior.Color = rgbLightGrey -----Comment----- 
ws4.Range(z, Range(z).End(xlToRight)).Interior.Color = rgbLightGrey 

コメント行は私が今使っているものですが、私は行末のメソッドを実装したいと思います。

答えて

0

コードでは、zは範囲参照ではなく整数(またはロング)のようです。

用途:

ws4.Range(ws4.Cells(z, 1), ws4.Cells(z, 1).End(xlToRight)).Interior.Color = rgbLightGrey 

編集:私はちょうどあなたが唯一の1列のデータを持っていると言うことに気づきました。その場合、.End(xlToRight)はセルの右側に最初の空でないセルが見つかるため、行の最後で停止しますので、上記のコードは機能しません。

あなただけの単一のセルに色をしようとしている場合には、使用:

ws4.Cells(z, 1).Interior.Color = rgbLightGrey 

横にある[編集]を、コメントに基づいて:

が列Aと最後の非空のセル内の範囲を選択するには行は、使用:

ws4.Range(ws4.Cells(z, 1), ws4.Cells(z, ws4.Columns.Count).End(xlToLeft)).Interior.Color = rgbLightGrey 
+0

ありがとう、それはもう私のエラーになりません。しかし、私はときどき内部の色を持つ必要があるデータの空の列を持つ行を持つこともあります。行の空白スペースの終わりの後に、より多くのデータが存在する可能性があり、すべてが1つの大きな行として強調表示される必要があるため、行の終わりを見るために何かが必要です。これにどのようにアプローチするか分かりません。ところで、1つの行にはデータを持たない4つ以上の列があってはなりません。したがって、データ間の最大の差は4列になります。 – rdan1

+0

@ rdan1 - 単一のセルの色を設定したり、行全体の色を最後の空白以外のセルに設定するための答えを編集しました。 – YowE3K

+0

OK、データの最後に使用された列に空白がある行があるため、.End()部分を削除して、以前にプログラムで設定したcolumnscountを使用しました。私が整数ではなく範囲を参照する必要があることを教えてくれてありがとう。 – rdan1

関連する問題