2016-08-28 2 views
0
Sub Sample() 

    Dim wsDiff As Worksheet, wsSheet As Worksheet, wsColorIndex As Worksheet 
    Dim lRow As Long, i As Long, j As Integer  

    Dim delentrysheet As String 
    Dim delentrycell As String   

    Dim delentrycolindex As Integer 

    Set wsDiff = Sheets("Differences") 
    Set wsColorIndex = Sheets("VERSION LOG") 
    lRow = wsDiff.Range("E" & wsDiff.Rows.Count).End(xlUp).row 
    delentrycolindex = wsColorIndex.Range("I3").Interior.ColorIndex 
    For i = 2 To lRow 
     If wsDiff.Range("E" & i).Value = "Entered Value Deleted." Then 
      delentrysheet = wsDiff.Range("A" & i).Value 
      delentrycell = wsDiff.Range("B" & i) 
      Set wsSheet = Sheets(delentrysheet) 
      With wsSheet 
      .Range(delentrycell).Interior.ColorIndex = delentrycolindex 
      End With 
     End If 
    Next 
End Sub 

このプログラムを実行するとエラーが発生します。ワークシートで、VBAを介して、私はセルの値を読み取って、その値と別のワークシートの色のセルを使用したいですか?

オブジェクトの「メソッド '範囲' '_Worksheet' 失敗しました。

誰も助けてくださいことはできますか?ありがとう。

+2

エラーが発生したときに強調表示される行は? –

+0

コードの最後の行(.Range(delentrycell).Interior.ColorIndex = delentrycolindex) – SVuppala

+0

失敗した場合、 'delentrycell'の値は何ですか?失敗した行の直前に 'Debug.Print delentrycell'行を追加してみてください。VB Editorのイミディエイトペインに出力が表示されます。 –

答えて

0

あなたはそれを割り当てる前にdelentrysheetが存在することを確認することがあります。

私はこれに関数を使用します:

Public function WorksheetExists(byval strSheet as string) as Boolean 

Dim wksCurr as excel.worksheet 

WorksheetExists = false 
For each wksCurr in thisworkbook.worksheets 
    If wksCurr.name = strSheet then 
     WorksheetExists = true 
      Exit for 
    End if 
Next wksCurr 
End function 

あなたのコードでは、 worksheetexists(delentrysheet)場合は例外を処理するためにいくつかのコードで

ならば、 設定xxxxの エルス エンド

を、多分メッセージボックス

+0

こんにちはアート壁、入力していただきありがとうございます。シートは存在します。私は確かに追加の評価方法としてあなたのコードを組み込むことができます。このエラーは、コード ".Range(delentrycell).Interior.ColorIndex = delentrycolindex"の最後の行に固有です。何が悪くなったのか分からない。 – SVuppala

0

(行、列)とdelentrycell値を置き換えと:チェック以下を試してください。代わりに次のコードを使用しての

.Range(delentrycell).Interior.ColorIndex = delentrycolindex 

は、次のコードを使用してみてください:

.Cells(1,1).Interior.ColorIndex = delentrycolindex 

あなたは置き換えることができ、あなたのCells(row,column)delentrycellが正しく(Row,Column)を表す場合Cells(delentrycell)と。

関連する問題