2017-01-18 20 views
0

ここでは、私が作業しているコードの一部がマクロの一部です。実行時エラー91:2行目で実行できません

これは基本的に同じ他のファイルでも同じです。

マクロはもう一方のファイルで動作しますが、実行されず、実行時エラー '91'が発生します。

shtData.Activate 
Dim r As Integer 
Dim strassured As String 

r = 1 
While ActiveSheet.Cells(r, 1) <> "" 
    ActiveSheet.Cells(r, 1).Select 

    strassured = ActiveCell.Value 
    If shtWorkSpace.Range("B3").Value = strassured Then 
     If shtWorkSpace.Range("A60").Value = "Pending" Then 
      DataHandling.OverwriteDataTab (strassured) 
      Exit Sub 
     Else 
      MsgBox "This assured name is already in the database. Assured Names must be unique!", vbCritical 
      shtWorkSpace.Activate 
      ActiveSheet.Range("A1").Select 
      Exit Sub 
     End If 
    Else 
     r = r + 1 
    End If 
Wend 
+3

? –

+0

実行時エラー '91'を参照します。 - オブジェクト変数が設定されていません。あなたのコード内のどのオブジェクトが設定されていませんか? – doctorlove

答えて

0

私は両方のワークシート(shtDatashtWorkSpace)を定義し、Setする方法を提供するのではなく、答えを追加しました:添付

はコードです。

また、より良いコーディング慣習を提供するために、とActiveCellを使用する必要はありません。代わりに、完全修飾RangeWorksheetsを使用してください。 `shtWorkSpace`が定義されており、設定されている

コード

Sub Test() 

Dim shtData As Worksheet 
Dim shtWorkSpace As Worksheet 
Dim r As Integer 
Dim strassured As String 

Set shtData = Worksheets("Data") '<-- modify "Data" to your sheet name 
Set shtWorkSpace = Worksheets("Workspace") '<-- modify "Workspace" to your sheet name 

r = 1 
While shtData.Cells(r, 1) <> "" 
    strassured = shtData.Cells(r, 1).Value 

    If shtWorkSpace.Range("B3").Value = strassured Then 
     If shtWorkSpace.Range("A60").Value = "Pending" Then 
      DataHandling.OverwriteDataTab (strassured) 
      Exit Sub 
     Else 
      MsgBox "This assured name is already in the database. Assured Names must be unique!", vbCritical 
      shtWorkSpace.Activate 
      ActiveSheet.Range("A1").Select '<-- not sure why you need to select the sheet and Range("A1") 
      Exit Sub 
     End If 
    Else 
     r = r + 1 
    End If 
Wend 

End Sub 
+0

ええ、気づいてくれてありがとう。私はいくつかのシートを一見して、セルまたはセルの範囲に書き込まれるデータに適したシートを見つけるので、Activateワークシート関数を使用しました。マクロが適切なシートを見つけたら、それをアクティブにします。 –

+0

@ChristianJasperCabotajeはあなたの必要に応じて上記のコードを実行しましたか? –

+0

残念ながら、それでも同じエラーが発生します。 –

関連する問題