Excel-VBA Finden Zeile Anzahl der übereinstimmenden Wert
Ich habe versucht, verschiedene Methoden zum Auffinden der Zeile Anzahl der bingo
(aufgeführt und getrennt durch Sternchen) aber keiner scheint zu funktionieren. Was mache ich falsch? In allen Fällen habe ich versucht, auf der Suche sowohl für Bingo " und "Bingo".
Sub Find_Bingo()
Dim wb As Workbook
Dim ws As Worksheet
Dim FoundCell As Range
Set wb = ActiveWorkbook
Set ws = ActiveSheet
Const WHAT_TO_FIND As String = "Bingo"
Set FoundCell = ws.Range("A").Find(What:=WHAT_TO_FIND)
If Not FoundCell Is Nothing Then
MsgBox (WHAT_TO_FIND & " found in row: " & FoundCell.Row)
Else
MsgBox (WHAT_TO_FIND & " not found")
End If
'************
With Sheet1
Set FoundCell = Cells.Find(What:=Bingo, After:=.Cells(1, 1), _
LookIn:=xlValues, lookat:= xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
End With
'************
Set FoundCell = Sheets("Sheet1").Columns("E").Find(Bingo, ActiveSheet.Cells(2, 2), LookIn:=xlValue, lookat:=xlWhole)
'************
FoundCell = Range("A:M").Find(Bingo)
'************
FoundCell = Application.WorksheetFunction.Match(Bingo, Range("A1:A200"), 0)
'************
FoundCell = Worksheets("Sheet1").Columns(1).Find(Bingo).Row
'************
Range("A:A").Find(Bingo, Range("A1")).Row
'************
ActiveWorkbook.Worksheets("Sheet1").Columns(1).Find(Bingo).Select
'************
End Sub
Versuchen Sie ws.Range("A:A")
ws.Range("A:A") -> immer Noch nichts
ws.Range("A:A") -> immer Noch nichts
InformationsquelleAutor Cats and Dogs | 2015-08-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für Ihren ersten Methode ändern
ws.Range("A")
zuws.Range("A:A")
die Suche nach der Gesamtheit der Spalte ein, etwa so:Für die zweite Methode, die Sie verwenden
Bingo
als variable statt einem string-literal. Dies ist ein gutes Beispiel dafür, warum ich hinzufügenOption Explicit
auf der Oberseite der alle meine code-Module, als wenn Sie versuchen, führen Sie den code, es wird direkt auf diese "variable", die undefiniert ist und nicht beabsichtigt, eine variable überhaupt.Darüber hinaus, wenn Sie mit
With...End With
benötigen Sie einen Zeitraum.
bevor Sie aufCells
, soCells
sollte.Cells
. Dies imitiert den normalen qualifying-Verhalten (d.h. Tabelle1.Zellen.Finden..)Ändern
Bingo
zu"Bingo"
und ändernCells
zu.Cells
Update
In meinem
Den
Sheet1
bezieht sich auf eine Arbeitsblatt-code name, nicht der name das Arbeitsblatt selbst. Zum Beispiel, sagen wir ich öffne eine neue, leere Excel-Arbeitsmappe. Die Standard-Arbeitsblatt ist nurSheet1
. Ich kann finden, dass in den code entweder mit der code-name derSheet1
oder kann ich entnehmen das es mit dem index derSheets("Sheet1")
. Der Vorteil zum verwenden ein codename ist, dass es sich nicht ändern, wenn Sie ändern Sie den Namen des Arbeitsblatts.Fortsetzung dieses Beispiel, sagen wir, ich umbenannt
Sheet1
zuData
. MitSheet1
würde weiterhin funktionieren, da der code-name nicht ändern, aber jetzt mitSheets("Sheet1")
zurückkehren würde, die Fehler und die syntax muss aktualisiert werden, um den neuen Namen des Blattes, so müsste es seinSheets("Data")
.In den VB-Editor würden Sie sehen, so etwas wie dieses:
Bemerken, wie, obwohl ich änderte den Namen zu
Data
gibt es noch eineSheet1
auf der linken Seite. Das ist das, was ich damit meine Codenamen.Den
Data
Arbeitsblatt kann auf zwei Arten verwiesen werden:Beide sollten zurück
Data
Mehr Diskussion auf dem Arbeitsblatt code-Namen gefunden werden kann hier.
Auf welche Zeile in dem code-Beispiel? Beide liefen auf meinem Rechner in Excel 2013.
Tatsächlich, es funktionierte auf eine test-Seite, aber nicht wieder auf meiner Haupt-Datei. Das problem war, wie ich fand heraus, dass ich hatte zu Beginn das segment wie so
with Sheets("Sheet1")
. Wissen Sie, was könnte die Ursache sein? Sie lernen, wie zu vermeiden, dass solche Fehler in der syntax sehr hilfreich sein könnte.Ach ja, ich update meine Antwort Ihnen zeigen, warum es ein syntax-Fehler.
Ich sehe jetzt. Vielen Dank für die Zeit nehmen, und geben diese ausführliche Erklärung! Nun, es ist ziemlich klar, wie das wird, nützlich sein.
InformationsquelleAutor Soulfire