kann man in Excel Spalten hochzählen lassen?
Also z.B. Spalte A + 1 = Spalte B ? Geht das?
Ich möchte nämlich Eigenschaften in verschiedenen Spalten überprüfen und möchte dies mittels einer For-Schliefe realisieren.
Vielen Dank schonmal!
Ich möchte nämlich Eigenschaften in verschiedenen Spalten überprüfen und möchte dies mittels einer For-Schliefe realisieren.
Vielen Dank schonmal!
das geht mit Columns(zähler)
Gruß
Peter
'i = Nummer der Spalte
'A=1, B=2, ...
Dim i As Integer
For i = 1 To 5
Debug.Print Columns(i).ColumnWidth
Debug.Print Cells(5, i)
Next i
End Sub
Gehe davon aus, daß ich innerhalb der Klammer die Spalten Nummer eingeben kann, oder?
Bsp:
ich möchte einen Wert in Spalte A, danach in Spalte B, danach in Spalte C überprüfen lassen.
Bsp.: Überprüfe Zeile 2 in Spalte A, danach in Spalte B, etc..
Vielen Dank!
grnau, in die Klammer gehört die NUMMER der Spalte. Wenn Du jetzt allerdings schreibst, dass Du *einen* Wert prüfen möchtest hilft Dir vielleicht auch Cells(reihe, spalte) weiter (für Reihe und Spalte natürlich auch wieder die Nummer).
Gruß
Peter
ICh möchte halt alles möglich dynamisch halten...fester Code bringt keinem was! ;)
Werdes es wohl so lösen:
Sheet1.Columns(1).Zeile?? // 1 steht für A
und das irgendwie kombiniert mit einer For-Schleife.. ;)
das hatte ich doch schon geschrieben.
Sheets(1).Cells(2, 1) (das wäre die Zelle in Zeile 2, Spalte 1 also A2). Für die Zahlen kannst Du natürlich Zählvariable benutzen.
For intSht = 1 to 20
For intRow = 1 to 5
For intCol = 1 to 10
if sheets(intSht).Cells(intRow, intCol) <> "" Then
das was Du machen möchtest
End If
Next
Next
Next
Gruß
Peter
Also der Code funktioniert nicht ganz richtig. Ich habe in meinen Zellen ein x drin stehen und er soll überprüfen, ob ein x in der Zelle steht, oder nicht.
Habe deinen Code getestet, mit <> "x" .. weiß nicht was das sein soll, da ich kein Excel Buch habe.
Mit ="x" funktioniert es leider auch nicht, d.h. wenn ich die "" nicht hinschreibe, wird das Ergebnis negiert.
Gebhard.
der Code sollte auch keine Lösung für Dein Problem darstellen sondern nur beispielhaft dafür stehen, wie man mit Variablen und Schleifen arbeiten kann. Der Code war auch nicht vollständig, die Variablendimensionierung fehlt komplett.
Beschreibe bitte genau, was Du machen möchtest. Welcher Bereich soll in welchen Blättern auf das Vorhandensein von x geprüft werden?
Und wenn etwas nicht funktioniert wäre es gut zu wissen was GENAU nicht funktioniert. Macht der Code nichts, nicht das, was er soll, gibt es Fehlermeldungen ...
Also beschreib bitte nochmal genau was Du machen möchtest, dann bekommst Du auch funktionierenden Code geliefert. :)
Gruß
Peter
MfG
Gerrit
Um in Excel Spalten hochzählen zu lassen, kannst Du eine einfache VBA-Prozedur verwenden. Folge diesen Schritten:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Klicke auf Einfügen
und wähle Modul
, um ein neues Modul zu erstellen.
Füge den folgenden Code in das Modul ein:
Sub spalten()
Dim i As Integer
For i = 1 To 5 ' Anzahl der Spalten, die hochgezählt werden
Debug.Print Columns(i).ColumnWidth
Debug.Print Cells(5, i) ' Überprüft die Zelle in Zeile 5
Next i
End Sub
Schließe den VBA-Editor und kehre zu Excel zurück.
Führe das Makro aus, um die Werte der Spalten zu überprüfen.
Mit diesem Code kannst Du die Spalten in Excel hochzählen und verschiedene Eigenschaften der Zellen abfragen.
Hier sind einige häufige Probleme und deren Lösungen:
Problem: Der Code wird nicht ausgeführt.
Entwicklertools
> Makros
, wähle das Makro aus und klicke auf Ausführen
.Problem: Die Ausgabe im Debug-Fenster ist nicht wie erwartet.
For i = 1 To X
an, wobei X
die Anzahl der gewünschten Spalten ist.Wenn Du nicht mit VBA arbeiten möchtest, kannst Du auch Excel-Formeln verwenden:
Um Werte in benachbarten Spalten zu referenzieren, kannst Du einfach in einer Zelle schreiben:
=A1 + 1
Dies zeigt den Wert von Zelle A1 plus 1 an.
Um in einer Formel dynamisch auf Spalten zuzugreifen, kannst Du die OFFSET
-Funktion verwenden:
=OFFSET(A1, 0, 1)
Dies gibt den Wert in der Zelle B1 zurück.
Hier sind einige praktische Beispiele, wie Du den Code anpassen kannst:
Überprüfen einer Zelle auf ein bestimmtes Zeichen (z.B. "x"):
Sub checkX()
Dim i As Integer
For i = 1 To 5
If Cells(2, i).Value = "x" Then
Debug.Print "In Spalte " & i & " steht ein x"
End If
Next i
End Sub
Dynamische Überprüfung über mehrere Blätter:
Sub checkMultipleSheets()
Dim intSht As Integer, intRow As Integer, intCol As Integer
For intSht = 1 To 20 ' Anzahl der Arbeitsblätter
For intRow = 1 To 5
For intCol = 1 To 10
If Sheets(intSht).Cells(intRow, intCol) = "x" Then
Debug.Print "In Blatt " & intSht & " in Zelle " & Cells(intRow, intCol).Address & " steht ein x"
End If
Next
Next
Next
End Sub
Debug.Print
, um während der Ausführung von Makros Informationen zu protokollieren. So kannst Du leichter Fehler finden.1. Wie kann ich eine bestimmte Spalte in Excel hochzählen?
Du kannst die Columns
-Eigenschaft in VBA verwenden, um auf eine bestimmte Spalte zuzugreifen. Zum Beispiel Columns(1)
für Spalte A.
2. Was bedeutet Cells(reihe, spalte)
in VBA?
Cells(reihe, spalte)
wird verwendet, um auf eine bestimmte Zelle in einem Arbeitsblatt zuzugreifen, wobei reihe
und spalte
die Nummern der Zeile und Spalte darstellen.
3. Wie überprüfe ich, ob ein Wert in einer Zelle steht?
Du kannst eine If
-Bedingung verwenden, um den Inhalt einer Zelle zu überprüfen, beispielsweise If Cells(2, 1).Value = "x" Then
.
4. Funktioniert das auch in Excel 365?
Ja, die beschriebenen Methoden und Codes funktionieren in Excel 365 sowie in anderen Versionen von Excel, die VBA unterstützen.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen