Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1188to1192
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Frage zu Range().Cut

Frage zu Range().Cut
Tim
Halo zusammen,
Folgendes Problem: Ich habe mir eine Sub geschrieben, die mir ein einem bestimmten Bereich die Spalten tauscht. Als Grundlage hierfür dient der Befehl
.Range().Cut Destination:=Range()
Solange diese Blatt während der Makro-Durchführung Selectiert ist, funktioniert das auch wunderbar. Ist aber ein anderes Tabellenblatt selectiert, funktioniert es nicht mehr. ( Laufzeitfehler 1004 - Anwendungs- oder objektdefinierter Fehler)
Mein Lösungsansatz war :
Worksheets().Range().Cut Destination:=Worksheets().Range()
aber der Fehler blieb der gleiche. Sete ich Sheets().Select vor den Befehl, klappt alles wunderbar, Nur diesen Befehl würde ich gerne vermeiden, zumal das Blatt wenn alles funktioniert auf VeryHidden gesetzt werden soll, und dann meines wissens nach über .Select auch nicht mehr aufgerufen werden kann.
Kann mir jemand sagen, wie die Syntax lauten müsste, bzw. ob dass denn überhaupt geht.
Vielen Dank
Tim

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Frage zu Range().Cut
01.12.2010 19:35:15
Hajo_Zi
Hallo Tim,
ich benutze da meist 2 Befehle.
1. Befehl kopieren.
2. Befehl alte Spalte löschen.

AW: Frage zu Range().Cut
01.12.2010 19:38:58
Nepumuk
Hallo,
das kann nicht sein. Cut funktioniert auch bei Sheets die xlVeryHidden, also garantiert nicht aktiv sind.
Gruß
Nepumuk
AW: Frage zu Range().Cut
01.12.2010 20:25:21
dan
Hallo Tim,
zwar habe ich Dein Makro nicht gesehn und deshalb verstehe Dein Problem nicht ganz, aber ich hoffe dass dieses Beispiel nuetzlich sein kann. In dem Beispiel kann man sehen, dass die Range-Cut Methode auch dann funktioniert, wenn der 'Quell-Sheet' nicht aktiv ist. Man muss nur auf den Range 'durch' den Sheet zeigen. Hoffe es hilft.
Gruss dan, cz.
Option Explicit
Public Sub RangeCutTest()
Dim sourceWorksheet As Worksheet
Dim targetWorksheet As Worksheet
Dim testWorksheet As Worksheet
Set testWorksheet = ThisWorkbook.Worksheets.Add
Set sourceWorksheet = ThisWorkbook.Worksheets.Add
Set targetWorksheet = ThisWorkbook.Worksheets.Add
testWorksheet.Name = "Test"
sourceWorksheet.Name = "Source"
targetWorksheet.Name = "Target"
testWorksheet.Activate
sourceWorksheet.Range("a1").Value = "Test123"
sourceWorksheet.Range("a1").Cut targetWorksheet.Range("a1")
End Sub

Anzeige
Danke + Erledigt
01.12.2010 23:27:00
Tim
Danke an Ale für die Hilfe. Mit dem Quelltext von Dan und einigem hin und her probieren hat es dann doch geklappt. Es gab wohl 2 wesentliche Fehler :
1.
Dim Ziel As Worksheet
Set Ziel = ThisWorkbook.Worksheets(Blatt)

2.
den Bereich Meiner Ranges hatte ich über Ziel.Range(Cells(a,b),Cells(x,y)) definiert und da bekommt er Probleme.
Schreibe ich hingegen
Dim Bereich as String
Bereich = Range(Cells(a,b),Cells(x,y)).address
Ziel.Range(Bereich)

Dann klappt es. Ich vermute das hängt irgendwie mit der Art des Zellbezugs zusammen
Gruß
Tim
Anzeige
AW: Danke + Erledigt
01.12.2010 23:37:37
Rudi
Hallo,

Ich vermute das hängt irgendwie mit der Art des Zellbezugs zusammen

Das hängt mit mangelhafter Referenzierung zusammen.
Set Bereich=Ziel.Range(Ziel.Cells(a,b), Ziel.Cells(x,y))
sollte funktionieren.
Alternativ mit With-Rahmen
With Ziel
Set Bereich = .Range(.Cells(a,b), .Cells(x,y))
End With
Gruß
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige