| |
Visual-Basic EinsteigerMethode Range für das Objekt _Worksheet fehlgeschlagen (Laufzeitfehler 1004) | | | Autor: Schachspieler | Datum: 13.01.19 21:21 |
| Ich bitte um Erklärung, wofür im folgenden Code ...
Dim varSiegerspalte
Dim shCL As Worksheet
Set shCL = Workbooks(strDateiName).Sheets("UEFA")
varSiegerspalte = shCL.Range("tbl_CL[Sieger]").Column
... der Ausdruck in den eckigen Klammern steht. (Die 4. Codezeile erzeugt Fehler.) Ist es ein Bereichsname? Ein Suchtext? Oder? Diese Syntax ist mit nicht bekannt.
Im EXCEL-Tabellenblatt befindet sich eine Tabelle mit einer Kopfzeile; dem gesamten Bereich AUSSER der Kopfzeile habe ich den Namen "tbl_CL" vergeben. In einer Zelle der Kopfzeile steht als Überschrift der Text Sieger. Die Zelle ist als Standard formatiert.
| |
Re: Methode Range für das Objekt _Worksheet fehlgeschlagen (Laufzeitfehler 1004) | | | Autor: Souffleurlos | Datum: 13.01.19 22:14 |
| Hallo,
eine Sheet, Worksheet kennt keine Eigenschaft Column! Vielmehr aber eine Aufzählung Columns!
varSiegerspalte = shCL.Range("tbl_CL[Sieger]").Columns(Nr_der_Spalte)
Wobei ich vorher die Zieltabelle als ActiveSheet Selektiert hätte. | |
Re: Methode Range für das Objekt _Worksheet fehlgeschlagen (Laufzeitfehler 1004) | | | Autor: Schachspieler | Datum: 14.01.19 10:36 |
| Hallo,
zunächst besten dank für Ihre Antwort.
Wnn ich Ihre Antwort
varSiegerspalte = shCL.Range("tbl_CL[Sieger]").Columns(Nr_der_Spalte)
richtig verstehe, müsste ich in .Columns(Nr_der_Spalte) die Spaltennummer explizit angeben, aber dann würde die Variable varSiegerspalte ja genau diesen (angegebenen) Wert erhalten.
Der Sinn der Codezeile
varSiegerspalte = shCL.Range("tbl_CL[Sieger]").Column
sollte aber sein, jene SPALTE zu ERMITTELN, in welcher die Überschrift Sieger steht. (Die Datei mit der Tabelle wird aus einem externen Verweis geladen, und hier kann man nicht sicher sein, dass dass die besagte Spalte immer gleich plaziert ist.)
Noch immer ist mir aber die Syntax Range("tbl_CL[Sieger]") unverständlich; und das ist mein Hauptproblem. Was wird in der [...]-Klammer übergeben? Ein Bereichsname in der Mappe oder ein Text, nach dem gesucht werden soll? | |
Re: Methode Range für das Objekt _Worksheet fehlgeschlagen (Laufzeitfehler 1004) | | | Autor: Souffleurlos | Datum: 15.01.19 16:43 |
| Hallo Schachspieler
Die Spaltenüberschriften in den Columns sind keine speziellen Objekte von Excel, sondern Zells, somit ein Range-Objekt.
Um die Spaltenüberschriften zu prüfen, ob eine der Zells den Wert: "Sieger" hat und angenommen, die Spaltenüberschriften befinden sich tatsächlich in der ersten Row (Zeile) der Tabelle dann würde eine kleine Funktion diese Column-Number zurückgeben:
Private Function GetSpezialColumn(Byval sColTitle As String, Optional Byval _
ByRow As Long = 1) As Long
Dim oR As Excel.Range
Dim nCol As Long
ActiveSheet.Rows(ByRow).Select
For Each oR In Application.Selection
nCol = nCol + 1
If Vartype(oR) = 8 Then 'String
If Ucase(oR.Value) = Ucase(sColTitle) Then
GetSpezialColumn = nCol : Exit Function
End If
End If
Next
End Function Aufruf dann: GetSpezialColumn("Sieger") wenn Zeile 1 ist oder
GetSpezialColumn("Sieger", 2) wenn die Überschriften in der 2. Zeile stehen usw
Beitrag wurde zuletzt am 15.01.19 um 16:46:14 editiert. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|