0

現在、次のコードを使用してワークブックを開き、特定の文字列を検索しています。

    Set workbook = Application.Workbooks.Open(Path)

    Set VBProj = workbook.VBProject
    Set oComp = VBProj.VBComponents("Module1")

    Set CodeMod = oComp.CodeModule

    FindWhat = ToFindStr

    With CodeMod
        SL = 1
        EL = .CountOfLines
        SC = 1
        EC = 255
        Found = .Find(target:=FindWhat, StartLine:=SL, StartColumn:=SC, _
            EndLine:=EL, EndColumn:=EC, _
            wholeword:=True, MatchCase:=False, patternsearch:=False)
        Do Until Found = False
            Print #fnum1, "found"
            EL = .CountOfLines
            SC = EC + 1
            EC = 255
            Found = .Find(target:=FindWhat, StartLine:=SL, StartColumn:=SC, _
                EndLine:=EL, EndColumn:=EC, _
                wholeword:=True, MatchCase:=False, patternsearch:=False)
        Loop
    End With

問題は、いくつかのスプレッドシートを開くと、コンパイラ エラー (ライブラリが見つからない) が発生するように見えることです。これを回避する方法はありますか?CodeMod コンテンツを検索可能な場所に取得する必要があるだけですが、問題はワークブックを開くことにあるようです。

4

1 に答える 1

0

Microsoft Visual Basic for Applications Extensibilityコードを実行するには、参照を追加する必要があります。

[ツール]>[参照]>次に、それを確認して[OK]をクリックします。

于 2012-11-06T18:43:02.977 に答える