VBS - in vorhandenes Workbook schreiben?
Hallo liebes administrator.de Forum,
ich habe eine technische Frage, ob mein Vorhaben so funktioniert und wie man es am besten realisiert
Es geht darum, dass wenn Excel bereit geöffnet ist, das VBScript in die vorhande Mappe schreibt, andernfalls soll Excel über das Script gestartet werden.
Gruß,
unkwownuser
ich habe eine technische Frage, ob mein Vorhaben so funktioniert und wie man es am besten realisiert
Es geht darum, dass wenn Excel bereit geöffnet ist, das VBScript in die vorhande Mappe schreibt, andernfalls soll Excel über das Script gestartet werden.
Gruß,
unkwownuser
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 128081
Url: https://administrator.de/contentid/128081
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
12 Kommentare
Neuester Kommentar
Hi,
Ja das geht. =)
Mehr bekomm ich aus meiner Glaskugel nicht an Information. ^^
Realisierung:
Stichwort: ActiveWindow
Für den Fall das Excel nicht offen ist.
Das passende Excelfile eintragen --> *freu*
Gruß
Ja das geht. =)
Mehr bekomm ich aus meiner Glaskugel nicht an Information. ^^
Realisierung:
Stichwort: ActiveWindow
Für den Fall das Excel nicht offen ist.
Set oExcel = CreateObject("Excel.Application")
oExcel.visible = true
Set oWbk = oExcel.Workbooks.Open (fname, false, true)
Das passende Excelfile eintragen --> *freu*
Gruß
Hallo unkwownuser!
Ja, das ist technisch möglich, aber nicht unbedingt sinnvoll, da ja mehrere Arbeitsmappen geöffnet sein können.....
In diesem Beispiel, wird mit Hilfe der Shell-Funktion ein Excel-Fenster aktiviert, sofern Excel geöffnet ist. Der Shell-Rückgabewert Result gibt an: Excel geöffnet True/False
Gruß Dieter
Ja, das ist technisch möglich, aber nicht unbedingt sinnvoll, da ja mehrere Arbeitsmappen geöffnet sein können.....
In diesem Beispiel, wird mit Hilfe der Shell-Funktion ein Excel-Fenster aktiviert, sofern Excel geöffnet ist. Der Shell-Rückgabewert Result gibt an: Excel geöffnet True/False
Dim Shell, Result
Set Shell = WScript.CreateObject("WScript.Shell")
Result = Shell.AppActivate("Microsoft Excel")
If Result = True Then
MsgBox "Excel ist geöffnet"
Else
MsgBox "Excel ist nicht geöffnet"
End if
Gruß Dieter
Hallo unkwownuser!
Ich verstehe leider nicht ganz was Du meinst? Vielleicht so was:
Gruß Dieter
Ich verstehe leider nicht ganz was Du meinst? Vielleicht so was:
Dim Excel, Shell, Result, Wks
Set Shell = WScript.CreateObject("WScript.Shell")
Result = Shell.AppActivate("Microsoft Excel")
Set Excel = CreateObject("Excel.Application")
If Result = True Then
Set Wks = Excel.ActiveSheet
Else
Excel.Workbooks.Add: Excel.Visible = True
Set Wks = Excel.ActiveSheet
End if
Gruß Dieter
Hallo unkwownuser!
Eigentlich ist das doch genau das, was meine Codebeispiele darstellen. Oder stehe ich irgendwie auf ner Leitung?
Gruß Dieter
Eigentlich ist das doch genau das, was meine Codebeispiele darstellen. Oder stehe ich irgendwie auf ner Leitung?
Gruß Dieter
Hallo unknownuser!
War zu schnell, muss erst noch was ausprobieren
Gruß Dieter
War zu schnell, muss erst noch was ausprobieren
Gruß Dieter
Hallo unknownuser!
Also, stand ich wohl doch auf der Leitung
Sorry, der Teil mit dem bereits geöffnetten Workbook funktioniert nicht und bis jetzt habe ich noch keinen Weg gefunden, das Object zu selectieren???.
Auch nach zahlreichen Versuchen, war es mir nicht möglich, auf die geöffnette Arbeitsmappe im aktiven Fenster zuzugreifen.
Einfacher wäre es, wenn die offene Datei schon mal gespeichert war und bereits einen Dateinamen hat. Mit neuer Mappe geht es offensichtlich nicht.
Gruß Dieter
Also, stand ich wohl doch auf der Leitung
Sorry, der Teil mit dem bereits geöffnetten Workbook funktioniert nicht und bis jetzt habe ich noch keinen Weg gefunden, das Object zu selectieren???.
Auch nach zahlreichen Versuchen, war es mir nicht möglich, auf die geöffnette Arbeitsmappe im aktiven Fenster zuzugreifen.
Einfacher wäre es, wenn die offene Datei schon mal gespeichert war und bereits einen Dateinamen hat. Mit neuer Mappe geht es offensichtlich nicht.
Gruß Dieter
Hallo unknownuser!
Toll, Spitzenleistung
Diese Konstellation hatte ich so ähnlich versucht. Mit dem Komma gab's dann aber Probleme z.B. GetObject("",...)...
Die Sub muss nicht in die If-Schleife. Das jeweile ActiveWorkbook.ActiveSheet wird in beiden Fällen durch die Variable Wks repräsentiert.
Und noch eine Anmwerkung zu ByRef. Das macht nur Sinn, wenn es sich um Objecte, Datei-Strings oder Strings handelt. Verwende bei Zahlenwerten ByVal.
Weiter so
Gruß Dieter
Toll, Spitzenleistung
Diese Konstellation hatte ich so ähnlich versucht. Mit dem Komma gab's dann aber Probleme z.B. GetObject("",...)...
Die Sub muss nicht in die If-Schleife. Das jeweile ActiveWorkbook.ActiveSheet wird in beiden Fällen durch die Variable Wks repräsentiert.
Und noch eine Anmwerkung zu ByRef. Das macht nur Sinn, wenn es sich um Objecte, Datei-Strings oder Strings handelt. Verwende bei Zahlenwerten ByVal.
Set Shell = WScript.CreateObject("WScript.Shell")
Result = Shell.AppActivate("Microsoft Excel")
If Result = True Then
Set xExcel = GetObject(, "Excel.Application")
Set Wks = xExcel.ActiveWorkbook.ActiveSheet
Else
Set xExcel = CreateObject("Excel.Application")
xExcel.Workbooks.Add
xExcel.Visible = True
Set Wks = xExcel.ActiveWorkbook.ActiveSheet
End If
Call setValue(3, 3, "Test")
Sub setValue(ByVal ColumnNumber, ByVal RowNumber, ByRef Value)
Wks.Cells(RowNumber, ColumnNumber) = value
End Sub
Weiter so
Gruß Dieter