Wieso funzt es nicht?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox


Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: Wieso funzt es nicht?
von: Alex
Geschrieben am: 20.06.2002 - 08:04:27

Moin! :)

Ich habe folgende Frage. Wieso funktioniert mein Beispiel nicht?
Ist doch alles richtig dim-iert und so....

Bringt trotz dem eine "Laufzeitfehler '1004'"!


Sub DieAndereZelle()
Dim Row%, Col%

row=20
col=20

Range("AA222").Select

ActiveCell.Offset(Col, -(Row - 1)).Select

End Sub

???

Alex

nach oben   nach unten

Re: Wieso funzt es nicht?
von: Andreas
Geschrieben am: 20.06.2002 - 08:13:52

Hallo Alex,

also bei funktioniert es. Aber vermeide bitte VBA-Schlüsselwörter wie Row als Variable zu definieren!!! Nenne sie einfach anders.

Kürzer geht´s auch so:


Sub DieAndereZelle()
Dim intRow%, intCol%

intRow = 20: intCol = 20
Range("AA222").Offset(intCol, -(intRow - 1)).Select
End Sub

Wenn es dann immer noch nicht geht, schreib mal, ob Du noch irgendwelche Besonderheiten in Deiner Tabelle hast, oder was Du überhaupt tun möchtest.

Viel Spaß,
Andreas

nach oben   nach unten

Re: Wieso funzt es nicht?
von: Michael Scheffler
Geschrieben am: 20.06.2002 - 08:18:04

Bei mir funktionierts. Wann tritt denn der Fehler auf - in welcher Zeile?

nach oben   nach unten

Re: Wieso funzt es nicht?
von: Alex
Geschrieben am: 20.06.2002 - 08:28:47

Hi Andreas!
Mir geht es da drum: Ich will in der Tabelle die Letzte Zeile Zelle mit dem Wert finden, dann eine Zeile runter gehen und eine Formel einfügen. Danach will ich einen Bereich markieren und die Formel mit Paste einfügen. Nun Zelle habe ich(Variablen Zeile und Spalte), die nächste Zeile auch (Variable Spalte +1). Aber wie sage ich ihm, dass er mir IN DIESER SPALTE ALLE ZELLEN BIS ZUM ANFANG markiert. So dachte ich mir wäre nicht schlecht ihm zu sagen markiere mir ab ActiveCell alle Zellen bis zum Anfang (Da es keine Zelle mit der Adresse A0 gibt muss es (Spalte-1) heißen) Nun habe ich in dem Fall versucht direkt zu dieser Zelle zu springen und es funzt immer noch nicht. Vielleicht kannst du mir sage warum? Mein Makro steht unten:

P.S. Variable RowAnf ist global und = 7 (In diesem Fall)

Sub LetzteZelle()
RealLastCell(ActiveSheet).Select
End Sub

Function RealLastCell(TheSheet As Worksheet) As Range
Dim ExcelLastCell As Range
Dim Ber As Range
Dim Spalte%, Zeile%, Diff%, LastRowWithData%, LastColWithData%
Application.ScreenUpdating = False
Set ExcelLastCell = TheSheet.Cells.SpecialCells(xlLastCell)
LastRowWithData = ExcelLastCell.Row
Spalte = ExcelLastCell.Row
Do While Application.CountA(TheSheet.Rows(Spalte)) = 0 And Spalte <> 1
Spalte = Spalte - 1
Loop
LastRowWithData = Spalte
LastColWithData = ExcelLastCell.Column
Zeile = ExcelLastCell.Column
Do While Application.CountA(TheSheet.Columns(Zeile)) = 0 And Zeile <> 1

Zeile = Zeile - 1
Loop
LastColWithData = Zeile
Set RealLastCell = TheSheet.Cells(Spalte + 1, Zeile)
Diff = Zeile - RowAnf
ActiveCell.Offset(1, -(Spalte - 1)).Select
MsgBox Spalte & " " & Zeile & " " & RowAnf & " " & Diff

End Function

nach oben   nach unten

Re: Wieso funzt es nicht?
von: Alex
Geschrieben am: 20.06.2002 - 08:31:09

Der Fehler taucht genau in der Zeille

ActiveCell.Offset(Col, -(Row - 1)).Select

auf!

Alex


nach oben   nach unten

Re: Wieso funzt es nicht?
von: Andreas
Geschrieben am: 20.06.2002 - 08:53:18

Hallo Alex,

ganz klar das ein Fehler auftritt, allerdings nur sobald die ActiveCell in den ersten 4 Spalten liegt. Diesen Fall solltest Du unbedingt abfangen, denn es in Excel keine Spalte 0 oder -1.

Viel Spaß,
Andreas


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Wieso funzt es nicht?"