-1

.Find関数の結果を見つけるために、VB 2010 で使用しようとしています。

これは私のコードです:

firstFind = xlWorkSheet.Range("E10", "CM10").Find(searchDate, ,     Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, False)

と の両方を試しましxlValuesxlFormulas

Excel 関数は非常に単純で、次のようになります。

=G9+7

結果は 19-Jul という日付で、これを検索できるようにしたいと考えています。

BR セバスチャン

4

3 に答える 3

0

使用せずに問題を解決した方法は次のとおりです.find

Const FOUND As Integer = 1, NOT_FOUND = 0
Dim worksheetNr As Integer = 0, columnNr As Integer, dateFound As Integer = NOT_FOUND

While worksheetNr < xlWorkBook.Worksheets.Count And dateFound = NOT_FOUND

    Try
        xlWorkSheet = xlWorkBook.Worksheets(worksheetNr)
        xlWorkSheet.Activate()
        columnNr = 7
        While dateFound = NOT_FOUND And (columnNr < 100)
            If (xlWorkSheet.Cells(10, columnNr).Value.Equals(searchDate)) Then
                dateFound = FOUND
            Else
                columnNr += 1
            End If

        End While

    Catch ex As Exception
        Console.Write("")
    End Try

End While
于 2012-07-10T11:04:31.667 に答える
0

まず最初に。Excel では日付が整数として認識されるため、7 月 19 日は実際には数値です (一般的なセルに =G9+7 を設定します)。たとえば、2012 年 7 月 19 日 = 41109 という日付です。

于 2012-07-09T13:16:33.113 に答える
0

検索機能を使用する代わりに列をループできませんか? このようなものは、今後のカスタマイズがより効率的または簡単になる可能性があります。

Sub Test()

    Dim iColumnSearch As Long
    Dim dtSearchDate As Date
    Dim rngFoundInCell As Range

    dtSearchDate = "7/16/2012"

    '- loop through columns E to CM (Column #'s 5 to 91)
    For iColumnSearch = 5 To 91
        If Cells(10, iColumnSearch).Value = dtSearchDate Then

            Set rngFoundInCell = Cells(10, iColumnSearch)
            Exit For
        End If
    Next iColumnSearch

    If Not rngFoundInCell Is Nothing Then '-if was found
        MsgBox "Found in cell: " & rngFoundInCell.Parent.Name & "!" & rngFoundInCell.Address(External:=False)
    End If


    Set rngFoundInCell = Nothing

End Sub

アップデート:

上記のコードは、特に検索文字列がどこにあるかわからなかったため、日付「2012 年 7 月 16 日」を検索していたことに注意してください。その行を次のように置き換えることができます。

dtSearchDate = Range("G9").value + 7
于 2012-07-09T21:34:58.850 に答える