テキストファイルで大きな文字列を検索するためにvbaマクロを使用しています。 私はテキストファイルを読んで、比較するテキスト(セルの1つに保存されています)を読んでください。その後、CRLFをCRに置き換えます(保存されたテキストにはCRLFが含まれていないため)。次に比較する。ファイルサイズが小さい場合は正常に動作します。しかし、ファイルサイズが大きいときにエラーを投げます(約50 KBは問題ありません)。 ファイルの最大サイズを推測しますか?VBA Excelマクロエラー:1004は、WorkbooFunctionクラスの代替プロパティを取得できません。
コードの下の部分がエラー投げている
Open LogFilePath For Input As #iFile
strFileContent = Input(LOF(iFile), iFile)
Close #iFile
strFileContent = Application.WorksheetFunction.Substitute(strFileContent, vbCrLf, "")
strSearch = Application.WorksheetFunction.Substitute(strSearch, vbLf, "")
strFileContent = Application.WorksheetFunction.Substitute(strFileContent, vbTab, " ")
If InStr(1, strFileContent, strSearch, vbBinaryCompare) > 0 Then
SearchTextFile = "success"
Else
SearchTextFile = "failed"
End If
任意の推測や提案してください。
私はちょうどテストしたところ、最初のパラメータ(とおそらく他のパラメータ)のサイズには32,767バイトの制限があります。私はあなたが50Kbのファイルを稼働させることに成功したことに驚いています。 @AndyWは答えで示唆しているように、 'Application.WorksheetFunction.Substitute'ではなくVBAの' Replace'関数を使います。 – YowE3K
セルに含めることができる合計文字数:32,767文字。だから私は「代理人」も限られていると思う。 [Excelの仕様と制限]をご覧ください(https://support.office.com/en-us/article/Excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3) –
ありがとう返信のために。サイズが200KBを超えるファイルを試していました。今私は32767バイトと32768バイトでチェックしました。 32768はエラーを示しましたが、32767はエラーを示さなかった – user3710272