Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
676to680
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
676to680
676to680
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kleines Codeproblem

Kleines Codeproblem
04.10.2005 03:52:35
egon
Hallo ich bin immer noch dran!
Einen noch dann gebe ich für Heute Ruhe:
Dim wb As Workbook,ws as Worksheet

Sub test()
Set wb = ThisWorkbook
set ws = sheets("Schicht")
wb.ws.[A1] = 100
MsgBox wb.name & " " & ws.name
End Sub

warum kommt da ne Fehlermeldung?
dann Gute Nacht
Egon

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kleines Codeproblem
04.10.2005 06:43:26
Erich
Hallo Egon,
du bekommst bei der Anweisung wb.ws.[A1] = 100 den Fehler 438:
"Objekt unterstützt diese Eigenschaft oder Methode nicht"
Die Hilfe beschreibt den Grund:
"Sie haben eine Methode oder Eigenschaft angegeben, die für dieses Automatisierungsobjekt nicht existiert."
wb ist ein Workbook. Nach wb. muss eine Workbook-Eigenschaft oder Workbook-Methode stehen. ws ist aber weder eine Eigenschaft noch eine Methode, sondern ein Objekt (der Klasse Worksheet). Daher der Fehler.
Noch zwei Bemerkungen zu deinem Code:
Mit Set ws = Sheets("Schicht") weist du der Variablen ws das Blatt "Schicht" der gerade aktuellen Mappe zu. Aktiv kann aber gerade eine andere Mappe als ThisWorkbook (die Mappe, in der dieser Code steht) sein.
ws.[A1] = 100 ist eine Kurzschreibweise für ws.Evaluate("A1") = 100. Schneller würde VBA die Anweisung ws.Cells(1, 1) = 100 verarbeiten.
Ein paar Beispiele:

Sub test()
Dim wb As Workbook, ws As Worksheet, wsA As Worksheet
Set wb = ThisWorkbook
Set ws = Sheets("Schicht")    ' ist ein Sheet im ActiveWorkbook
'  Set ws = wb.Sheets("Schicht") ' willst du vermutlich
ws.[A1] = 10
ws.Evaluate("A2") = 20
ws.Cells(3, 1) = 30
wb.Sheets("Schicht").[A4] = 40
wb.Sheets.Item("Schicht").[A5] = 50
wb.Sheets.Item("Schicht").Evaluate("A6") = 60
'  wb.ws.[A7] = 70               ' funzt nicht
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige