2

Excel内にそれぞれ1023文字の文字列を保存しています。後で、Excel ファイルを検索して、値が含まれている行を見つける必要があります。探している文字列がワークブックのどこかに 1 つだけ存在することを保証できます。

現在、検索しようとするたびに型の不一致エラーが発生します (検索機能の長さ制限が 255 であるため)。検索文字列を「teststring」のような短いものに置き換えると、正常に機能します。Excel で 1023 文字の文字列を検索するにはどうすればよいですか?

foreach (string missingItem in missingItems)
{
    Range currentFind = null;
    foreach (Worksheet searchSheet in oWB.Worksheets)
    {
        Range lookAtRange = (Range)searchSheet.get_Range ("A1", "F20");

        currentFind = lookAtRange.Find (
            missingItem, 
            Missing.Value, 
            XlFindLookIn.xlValues,
            Missing.Value,
            Missing.Value, 
            XlSearchDirection.xlNext, 
            false, 
            false,
            Missing.Value);

        if (currentFind != null)
        {
            Range deleteRow = (Range)searchSheet.Rows[currentFind.Row];
            deleteRow.Delete (XlDirection.xlUp);
            break;
        }
    }
}
4

1 に答える 1

2

http://www.vbaexpress.com/forum/archive/index.php/t-9179.html

つまり、すべての文字列が最初の 255 文字で一意であれば、残りについて心配する必要はありません。

検索を実行する前に、文字列を切り捨てる必要があります。

missingItem = Left(missingItem,255)

または代わりに:

missingItem = Right (missingItem,255)

それ以外の場合、最初の 255 文字の重複が多数ある場合は、文字列を 255 で分割して切り上げ、元の文字列を個別の文字列に分割し、個別に検索することができます。

編集:

その他、範囲内の各セルの等価性を文字列で確認する方法は次のとおりです: http://www.vbaexpress.com/kb/getarticle.php?kb_id=167

Sub FindIt()
    Dim Cell As Range
    Dim SearchString As String
    For Each Cell In Range("A1:D500")
        If Cell.Value = "dqwlokjdowqijowqijdoinowiqhdoiwqiophiruegnqpiunrgpiuqgnrgkjffndskfiougpiodghiudhfgtothisansdfldkjflsdffjlksdjflksjfdoiejwfoiwjeoinfoinewoifjwoiejfoiwejfoiwejfoijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjwerkjwelkfjwelkjflkwejlfkjwelkjflwkjeflknweoifnoweinfoinewfoinoifwnwoienfoinweoddddddddddddddddddddddddddddddddddddddddfinwoioiefldkjsfoijoneiojfoijfewwefweeeeeeeeeeeefwef" Then '<< use "Like" for wildcards in If-Then statements
            MsgBox "An ''it'' was found at " & Cell.Address & " (" & Cell & ")"
        End If
    Next Cell
End Sub

面白い検索文字列

そして、はい、上司が通りかかったので、重要なこととしてそれを入力するふりをしました。彼がだまされたとは思いませんが、キーボードでつぶやいただけなので.

于 2012-07-30T19:34:40.377 に答える