8

私の顧客はコンパイルエラーを受け取ります。彼のバージョンのExcel2010でプロジェクトまたはライブラリが見つかりませんが、私のバージョンの2010ではこれを取得できません。このコードを調整して表示されないようにするにはどうすればよいですか。次のコードにエラーが表示されると、「選択中の各セルについて」の「セル」というテキストが強調表示されます。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$9" Then
Columns("D:CB").Select
Selection.EntireColumn.Hidden = False
Application.ScreenUpdating = False

Sheet17.Range("E48:CB48").Select

For Each cell In Selection
    If cell = 0 Then
       Range(cell.Address).EntireColumn.Hidden = True
    End If
Next

Application.ScreenUpdating = True
Sheet17.Range("b9").Select
End If

End Sub`

私の顧客は、「応答」という単語が強調表示された次のコードのバグも報告しています。これも、私のバージョンのExcel2010では問題になりません。すべてのヘルプに感謝します。

If Sheet1.Range("E18") = 3 Then
Response = MsgBox("Reminder Emails have been set to be sent automatically at " &               Sheet1.Range("f18").Value & ", " & Sheet1.Range("Q4").Value & " day(s) before" & vbCrLf & "the scheduled appointment. Do you want to send reminder e-mails now anyway?", vbYesNo)
    If Response = vbNo Then
    Exit Sub
    End If
    End If
4

1 に答える 1

9

VBAウィンドウで、に移動しTools --> References、すべてのコンピューターで同じライブラリがオンになっていることを確認します。また、すべてのアクティブなライブラリが上から下に同じ順序になっていることを確認してください。

多くのライブラリは「標準になっています」が、オンに切り替える必要がある場合があります。または、機能的な干渉のために、ライブラリ参照をオフに切り替える必要がある場合があります。ライブラリが完全に欠落している可能性がありますが、それはかなり標準的なスイートであり、ライブラリをいじくり回したことに気付いていないため、これが当てはまるとは思えません。

これは典型的な問題であり、通常、ディストリビューションの顧客にとってそれほど大きな負担とは見なされません。そうである場合は、コードを作り直して、使用する参照を減らすことができます。または、必要なライブラリをプログラムでロードできる場合があります(ただし、私はこれを試したことがありません)。

Option Explicitすべてのモジュールの先頭に含めることをお勧めします。この問題は、変数の宣言の失敗に少し似ています。要件は設定によって異なると思います。 Option Explicitすべての変数を強制的に宣言します。これは一般的に有益であり、すべてのクライアントインストールが同じように動作する可能性があります。

于 2012-07-18T02:36:14.537 に答える