現在のワークブック内の特定のシートが別の閉じられたワークブックに存在するかどうかをテストし、エラーの原因となっているシートを示すメッセージを返します。シートが外部クローズドワークブックに存在するかどうかをチェック
ブックを開いたり閉じたりしないようにして、シートが存在するかどうかをテストするためにファイルパス(fp)のブックにリンクするランダムセルの式を変更しようとしています。
これは私が知っているダミーシートでテストしましたが、他のブックには存在しませんが、動作しますが、エラーが発生するシートが複数ある場合、アプリケーション定義またはオブジェクト定義エラー" 2回目の反復では、エラー処理がどのように書かれているのかがクラッシュの原因になると私は信じていますが、その動作の仕方は正確には分かりません。
私が持っているコードは次のとおりです。
Sub SheetTest(ByVal fp As String)
Dim i, errcount As Integer
Dim errshts As String
For i = 2 To Sheets.Count
On Error GoTo NoSheet
Sheets(1).Range("A50").Formula = "='" & fp & Sheets(i).Name & "'!A1"
GoTo NoError
NoSheet:
errshts = errshts & "'" & Sheets(i).Name & "', "
errcount = errcount + 1
NoError:
Next i
Sheets(1).Range("A50").ClearContents
If Not errshts = "" Then
If errcount = 1 Then
MsgBox "Sheet " & Left(errshts, Len(errshts) - 2) & " does not exist in the Output file. Please check the sheet name or select another Output file."
Else
MsgBox "Sheets " & Left(errshts, Len(errshts) - 2) & " do not exist in the Output file. Please check each sheet's name or select another Output file."
End If
End
End If
End Sub
うまくいけば、あなたたちはここに私を助けることができ、感謝!
このサブプログラムを呼び出すと面白いと思いますが、何をfp文字列に渡しますか?ワークブックが開いていないとワークシートの値にアクセスできないと確信していました – dbmitch
fp文字列には、通常のリンクされたセルと同様に、[]内の外部ワークブックのパスが含まれています。 – superzipp