$A$1 oder Cells(1,1)

.. das wohl mächtigste Werkzeug in Bill Gates' Büro-Sippe. Ob reine Formeln, PowerQuery oder VBA. Hier bleiben kaum Wünsche unerfüllt.
Benutzeravatar
d'r Bastler
Beiträge: 670
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 175 Mal
Danksagung erhalten: 90 Mal

$A$1 oder Cells(1,1)

#1

Beitrag von d'r Bastler »

Hier eine kleine Spielerei zum Generieren von Beispieldaten. Dazu nutze ich die Formel =Spalte() & "," & Zeile() in A1 und kopiere sie mir dann in ein beliebiges Range. Dadurch werden die Zellen mit ihren Adressen cells(row,column) gefüllt. Das lässt sich z.B. mit isNumeric auswerten. Wer aber lieber Text in den Zellen haben möchte, schreibt die $-Adressen hinein.

Code: Alles auswählen

Option Explicit

Sub Cells2Names()
Dim i As Integer, j As Integer, r As Integer, c As Integer

r = UsedRange.Rows.Count
c = UsedRange.Columns.Count

For i = 1 To r
    For j = 1 To c
        Cells(i, j) = Cells(i, j).Address
    Next j
Next i

'MsgBox "!"
End Sub

Sub Names2Cells()
Dim i As Integer, j As Integer, r As Integer, c As Integer

r = UsedRange.Rows.Count
c = UsedRange.Columns.Count

For i = 1 To r
    For j = 1 To c
        Cells(i, j) = Cells(i, j).Row & "," & Cells(i, j).Column
    Next j
Next i

'MsgBox "!"
End Sub
Viel Spaß!
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Sulprobil
Beiträge: 22
Registriert: 23. Sep 2022, 05:54
Hat sich bedankt: 3 Mal
Danksagung erhalten: 14 Mal
Kontaktdaten:

Re: $A$1 oder Cells(1,1)

#2

Beitrag von Sulprobil »

Hallo,

nur als Anregung:
1. Nie Integer, immer Long verwenden. Wir haben jetzt mehr als 65536 Zeilen :)
2. Nicht fortlaufend einzelne Zellen beschreiben, sondern erst alles im Speicher berechnen (Variant) und dann in einem Rutsch ins Tabellenblatt schreiben.

Code: Alles auswählen

Sub NochWas()
Dim i As Long, j As Long, r As Long, c As Long

r = ActiveSheet.UsedRange.Rows.Count
c = ActiveSheet.UsedRange.Columns.Count
ReDim v(1 To r, 1 To c)
For i = 1 To r
    For j = 1 To c
        v(i, j) = "[" & i & "," & j & "]"
    Next j
Next i
 
ActiveSheet.UsedRange.FormulaArray = v

End Sub
Frohes Fest,
Bernd
Folgende Benutzer bedankten sich beim Autor Sulprobil für den Beitrag:
d'r Bastler
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste