wie kann man in einer geschlossenen Excel-Datei via VB-Skript die Zellen markieren, formatieren und sortieren.
Danke im Voraus
Freundliche Grüße
Wladimir
dim excel
set excel = CreateObject(Class:="Excel.Application")
excel.visible = true
excel.Workbooks.Open "C:\Datei.xls"
excel.Range("A:A").Sort excel.Range("A1"), 1, 0, 1, False, 1, 0
excel.ThisWorkbook.Save
excel.Quit
Set excel = Nothing
Dies mal in eine Textdatei schreiben und als vbs Datei speichern.
Wie gesagt getestet habe ich dies nicht, bin auch nicht der Skript Experte
Gruß Tino
Dim excel
Set excel = CreateObject("Excel.Application")
excel.Visible = True
excel.Workbooks.Open "J:\1 Forum\Sort VBS\Datei.xls"
excel.Range("A:A").Sort excel.Range("A1"), 1, , , , , , 0, 1, False, 1, , 0
'Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header,
'OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)
excel.Workbooks("Datei.xls").Save
excel.Quit
Set excel = Nothing
Gruß Tino
Dim objExcel As Object, objWorkbook As Object
Set objExcel = CreateObject("Excel.Application")
With objExcel
.Visible = False
Set objWorkbook = .Workbooks.Open("c:\test.xls")
With .objWorkbook
' hier dein Code zum Formatieren und Sortieren
' die nächste Zeile ist nur ein kleines Beispiel
.Sheets(1).Cells(1, 1) = "XXX"
.Close True ' speichern und schließen
End With
.Quit
End With
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
"Wenn du mit einem Excel-Objekt wie
Workbook arbeitest,
arbeitest du mit den Eigenschaften und
Methoden des Excel-Objekts,
also mit VBA-Dingen, auch innerhalb
eines VBS-Skripts.
Das tust du auch schon mit der Zeile
excel.Workbooks.Open "C:\Datei.xls"
Was wäre Workbooks.Open in VBS?"
Set objWorkbook = Excel.Workbooks.Open("c:\test.xls")
wenn ich z. B. in eine Zelle was schreiben will, sieht es in VBS so:
Excel.ActiveSheet.Cells(45,1).Value = "Name"
So viel ich weiß in VBA soll zunächst etwas mit Range deklariert werden und A45 stehen.
"Das VB-Skript erledigt nicht selbst
einige Aufgaben in Excel, sondern
fordert Excel auf, das zu tun."
Ich verstehe, was Du damit sagen willst, aber VBS gibt einen Fehler und ich komme leider nicht weiter.
"- Du schreibst hier konkret und genau,
was wie in der Mappe getan werden soll
(welches Blatt, welcher Bereich, welches
Format, wonach und wie sortiert?),
dann kann hier jemand für dich der Code
schreiben/aufzeichnen oder was auch
immer. "
Es gibt eine Tabelle (Tabellenblatt 1) im Bereich A45:AV77. Die erste Spalte ist Name, Vorname, nach der sortiert werden soll. Die Spalte A soll linksbündig formatiert werden, da nach dem Eintragen vom Skript, ist die Eintragung rechtsbündig. Spalte B, C und D sollen als Datum und Rest als Zahl formatiert werden.
Ich glaube, dass ich nichts vergessen habe.
Nochmals Danke
Freundliche Grüße
Wladimir
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | |
3 | 3 | 1 | 16 | 20 | 25 | 45 | 49 | 2 | 14 | 16 | 21 | 49 | 49 | 3 |
Formeln der Tabelle | ||||
| ||||
Enthält Matrixformel: Umrandende { } nicht miteingeben, sondern Formel mit STRG+SHIFT+RETURN abschließen! | ||||
Matrix verstehen |
P | |
3 | =SUM(COUNTIF(A3:G3,I3:N3)) |
Formeln der Tabelle | ||||
| ||||
Enthält Matrixformel: Umrandende { } nicht miteingeben, sondern Formel mit STRG+SHIFT+RETURN abschließen! | ||||
Matrix verstehen |
Range("O3").FormulaArray = "=SUM(COUNTIF(A3:F3,H3:M3))"
Gruß Tino
Dim objExcel, objWorkbook, objWks
Set objExcel = CreateObject("Excel.Application")
With objExcel
.Visible = False
Set objWorkbook = .Workbooks.Open("c:\test.xls")
Set objWks = objWorkbook.Sheets("Tabelle1")
With objWks
.Columns("A:A").HorizontalAlignment = -4131
.Columns("B:D").NumberFormat = "m/d/yyyy"
.Columns("E:AV").NumberFormat = "#,##0.00"
.Range("A45:AV77").Sort objWks.Range("A46"), 1, , , , , , 1, 1, False, 1
End With
objWorkbook.Close True ' speichern und schließen
.Quit
End With
MsgBox "fertig"
Habe gerade auch Tinos Lösung gesehen, geht in die gleiche Richtung.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort