unkwownuser
Goto Top

VBS - Columns und Rows

Hallo liebes administrator.de Forum,

ich habe zur Zeit ein Problem mit dem deklarieren von Columns und Rows in VBS.
Es will einfach nicht funktionieren. Ich habe schon sämtliche Variationen ausprobiert, jedoch ohne Erfolg.

Sub assignStyle(ByRef Wks, ByRef fromColumnNumber, ByRef toColumnNumber, ByRef fromRowNumber, ByRef toRowNumber, ByRef StyleName)
	Wks.Cells(Wks.Columns(fromColumnNumber), Wks.Columns(toColumnNumber), Wks.Rows(fromRowNumber), Wks.Rows(toRowNumber)).Style = StyleName
End Sub

Call assignStyle(xExcel.ActiveWorkbook.ActiveSheet, "A", "B", "1", "2", "Style")  


Gruß,
unkwownuser

Content-ID: 127498

Url: https://administrator.de/contentid/127498

Ausgedruckt am: 26.11.2024 um 14:11 Uhr

TsukiSan
TsukiSan 20.10.2009 um 10:28:00 Uhr
Goto Top
Hi unknownuser,

was möchtest du denn genau machen?
Wenn es nur um Einträge in einzelne Zellen/Spalten geht, dann kann man es so machen:
Dim objXL

Set objXL = WScript.CreateObject("Excel.Application")  
objXL.Workbooks.Add
objXL.Cells(1,1).Value = 5
objXL.Cells(1,2).Value = 10
objXL.Cells(1,3).Value = 15
objXL.Range("A1:C1").Select  

objXL.Visible = True

Set objXL = nothing

Gruß
Tsuki
bastla
bastla 20.10.2009 um 10:40:30 Uhr
Goto Top
Hallo unknownuser und Tsuki!

Ich hätte es so verstanden:
Wks.Range(Wks.Cells(fromRowNumber,fromColumnNumber), Wks.Cells(toRowNumber,toColumnNumber)).Style = StyleName
Grüße
bastla
TsukiSan
TsukiSan 20.10.2009 um 10:46:45 Uhr
Goto Top
Hi bastla,

da habe ich wohl zu schnell gelesen!
Ich glaube, du hast genau verstanden, was unkownuser meinte.
Sorry, unkownuser!
Es geht um die Art der Beschriftung/Bezugsart von Zeilen und Spalten.
Jetzt hab ich's auch verstanden!

Ach, dieser Dienstag.......

Gruß
Tsuki
unkwownuser
unkwownuser 20.10.2009 um 10:56:30 Uhr
Goto Top
Hi Tsuki und bastla,

@ Tsuki, ich meine damit, das man nicht A1 bis B5 schreibt sondern halt Column 1-5 und Row A-B.
@ Bastla, leider funktioniert die Deklaration nicht so richtig.


Gruß
unkwownuser
AndreasHoster
AndreasHoster 20.10.2009 um 12:12:17 Uhr
Goto Top
Excel will Zahlen als Indizes für Row & Column.
A, B, AA etc. funktioniert nicht, es sei denn, Du baust noch eine Umrechnungsroutine mit in Deine Routine ein, die A in 1 umrechnet, AA in 27 etc.
Und Zahlen bedeutet auch, keine Anführungszeichen um die Werte.
Aufruf also (Rest nicht auf Syntax und Logik geprüft):
Call assignStyle(xExcel.ActiveWorkbook.ActiveSheet, 1, 2, 1, 2, "Style")  
76109
76109 20.10.2009 um 13:35:15 Uhr
Goto Top
Hallo zusammen!

@AndreasHoster
Da muss ich Dir leider widersprechen, dass funktioniert sehr wohl.

@unkwownuser
Die Syntax, wie sie bastla angegeben hat ist schon richtig. Nur Für den Wert Style, musst Du schon etwas angeben, was Excel auch bekannt ist z.B:

Sub assignStyle(ByRef Wks, ByVal fromColumnNumber, ByVal toColumnNumber, ByVal fromRowNumber, ByVal toRowNumber, ByRef StyleName)
    Wks.Range(Wks.Cells(fromRowNumber, fromColumnNumber), Wks.Cells(toRowNumber, toColumnNumber)).Style = StyleName
End Sub

Sub test()
    Call assignStyle(ActiveSheet, 1, 2, 1, 2, "Percent")  
    Call assignStyle(ActiveSheet, "A", "B", 1, 2, "Percent")  
    Call assignStyle(ActiveSheet, "A", "B", "1", "2", "Percent")  
End Sub

Gruß Dieter
unkwownuser
unkwownuser 20.10.2009 um 13:46:40 Uhr
Goto Top
Hi AndreasHoster,

jetzt funktioniert es einwandfrei.
Vielen Dank an euch alle für die schnell Hilfe.


Gruß
unkwownuser