Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Laufzeitfehler 1004
#1
hallo

ich habe hier begonnen, ein makro zu schreiben:

Sub loeschen2()
'
' Makro2 Makro
'

Dim a#
Dim b#
a# = 1
b# = 2


'Start

start:
Range("s" & a#).Select
If (ActiveCell.Value = "Ende") Then
MsgBox ("Ende")
Exit Sub
End If


Range("s" & a#).Select
Selection.copy
Range("t" & a#).Select
a = Range("t" & b#).Value
ActiveSheet.Paste

vergleich:
(AAA: gehört nicht zum makro)
Range("s" & a#).Select
a = Range("s" & a#).Value
b = Range("t" & a#).Value
If a = b Then
a# = a# + 1
b# = b# + 1
GoTo vergleich
Else
GoTo start
End If

Bei Überprüfung kommt in der Zeile AAA:
die Meldung
Laufzeitfehler 1004
Die Methode "Range" für das Objekt "_Global" ist fehlgeschlagen.

Was ist da falsch????
Antworten Top
#2
Morgen,

a = Range("t" & b#).Value

liest den Wert aus Spalte T aus und nimmt den als neuen Zeilenindex für das nachfolgende Range("s" & a#).Select

Ziemlich wahrscheinlich ist im Fehlerfall a = 0.

Schreibe vielleicht mal besser was Du denn überhaupt machen möchtest?

cu, Bernd
Antworten Top
#3
(23.01.2015, 09:19)bst schrieb: Morgen,

a = Range("t" & b#).Value

liest den Wert aus Spalte T aus und nimmt den als neuen Zeilenindex für das nachfolgende Range("s" & a#).Select

Ziemlich wahrscheinlich ist im Fehlerfall a = 0.

Schreibe vielleicht mal besser was Du denn überhaupt machen möchtest?

cu, Bernd



ich habe eine Spalte mit aufsteigenden Zahlen
Manche Zahlen sind doppelt
das Makro fängt oben an und kopiertt den Wert in die DSpalte daneben
Dann schaut das Makro ob der nachfolgende Wert geich ist
Wenn ja nächste Zeile wenn nein woieder rüberkopieren
Ich will also eine Zahlenspalte generieren, in der keine doppelten Zahlen mehr sind
Antworten Top
#4
Hi,

nimm vielleicht in die oberste Zeile der Quell-Spalte eine Überschrift. Und dann einen Spezialfilter, an eine andere Stelle kopieren ohne Duplikate. Fertig.

cu, Bernd
--
Code:
Option Explicit

Sub Makro1()
'
' Makro1 Makro
' Makro am 23.01.2015 von bst aufgezeichnet
'

'
    Range("S1:S13").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
        "T1"), Unique:=True
End Sub

Daraus mache dann vielleicht so etwas ähnliches.

Code:
Sub x()
   Columns("S:S").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("T1"), Unique:=True
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an bst für diesen Beitrag:
  • amadeus_ms
Antworten Top
#5
Hi,

probier es mal so.

Code:
Sub Unikate()
    Dim Blatt As Worksheet
    Dim Zelle As String

    Set Blatt = ActiveSheet
    Blatt.Columns(19).AdvancedFilter Action:=xlFilterCopy, _
        CopyToRange:=Blatt.Range("T1"), Unique:=True

End Sub

Ich habe das her mal getestet.

Arbeitsblatt mit dem Namen 'Tabelle1'
 AB
111
222
333
455
536
629
7610
8912
91011
101255
1110 
1211 
1355 

Gruß
Max
[-] Folgende(r) 1 Nutzer sagt Danke an Max für diesen Beitrag:
  • amadeus_ms
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste