Auf einen characterfolgewert in Excel-VBA mit der Eigenschaft indizierte Zellen verweisen

VBA Newbie hier mit einer grundlegenden Frage Ich habe gekämpft, um die Antwort zu finden:

Ich versuche, eine loop in VBA auszuführen, die eine characterfolge (oder ein Wort) nachschlägt, und wenn dieses Wort gefunden wird, muss ein bestimmter Buchstabe in einer Zelle in der Spalte daneben angezeigt werden. Dies funktioniert gut, wenn ich eine bestimmte Zellreferenz verwende (z. B. Cells (72, 10)), aber sobald ich versuche, sie mit einem Index (z. B. Cells (i, 10)) zu loopen, ergibt sich ein Fehler 13 – type mismatch.

Die 'Strings', die ich suche, sind Ausgänge (entweder "Peak" oder "Trough") von einem anderen Makro, das ich als grundlegende Berechnungsfunktion in Excel geschrieben habe. Tritt der Fehler auf, wenn versucht wird, auf einen anderen datatyp zu verweisen, als die function "Zellen" erkennen kann? Oder gibt es nur einen besseren path, um meine loop zu laufen? Im Folgenden sind das Makro und meine loop.

Function FTrough(tmin2, tmin1, t, tplus1, tplus2) If t < tmin2 And t < tmin1 And t < tplus1 And t < tplus2 Then FTrough = "Trough" Else FTrough = "" End If End Function 

Und die loop ":

 Sub Lookup() Dim i As Integer Dim j As Integer Dim c As Integer c = ActiveWorkbook.Worksheets.Count For i = 1 To c For j = 2 To 141 If Worksheets(i).Cells(j, 10) = "Trough" Then Worksheets(i).Cells(j, 12) = "T" End If If Worksheets("Austria").Cells(j, 11) = "Peak" Then Worksheets("Austria").Cells(j, 12) = "P" End If Next j Next i End Sub 

Jede Hilfe wird geschätzt

  • Excel VBA - Zelle (#, #) mit variables
  • JAVA - Kein memoryerrors beim Schreiben von Excel-Zellen in JXL
  • Wie bearbeiten Sie das Format von Zellen in einer CSV-file - Excel 2013
  • Verwenden Sie den Wert aus der Zelle, um eine andere Zelle zu bestimmen
  • Finde eine Zelle, überprüfe andere Vorkommnisse und kopiere den Versatz in Vorkommnissen. Fehler 91, Block nicht gesetzt
  • Apache POI & colors
  • Unterschied zwischen `Range`,` Range.Cells`, `Range.Rows`, etc.," Subtypen "
  • Geben Sie Mismatch ein, indem Sie Zellen (3,4) als ein Range-Argument übergeben
  • One Solution collect form web for “Auf einen characterfolgewert in Excel-VBA mit der Eigenschaft indizierte Zellen verweisen”

    Ich kann nicht kommentieren, weil mein Ruf niedriger als 50 ist, also hier ist meine Antwort.

    Grundsätzlich funktioniert dein Code perfekt. Ich habe es mit Excel 2013 / VB6 wie folgt getestet:

     Sub Lookup() Dim i As Integer Dim j As Integer Dim c As Integer c = ActiveWorkbook.Worksheets.Count For i = 1 To c For j = 2 To 141 If Worksheets(i).Cells(j, 1) = "Trough" Then Worksheets(i).Cells(j, 2) = "T" End If If Worksheets("Austria").Cells(j, 1) = "Peak" Then Worksheets("Austria").Cells(j, 2) = "P" End If Next j Next i End Sub 

    Die function zum Schreiben der Werte in Excel:

     Public Function X(tmin2, tmin1, t, tplus1, tplus2) If t < tmin2 And t < tmin1 And t < tplus1 And t < tplus2 Then X = "Trough" Else X = "" End If End Function 

    Die Werte in Excel wurden sowohl durch Benutzerdefinitionen als auch zB =X(100;100;1;100;100) .

    Spreadsheet (Microsoft Excel) makes working easy.