14.02.2024, 12:48
Hallo allerseits,
zuerstmal: Ich bin dummer Endanwender mit ein paar rudimentären VBA-Kenntnissen, also verzeiht mir bitte meine Unwissenheit und blöde Rückfragen, vielen Dank vorab!
Zu meinem Problem:
Ich möchte eine wöchentlich aktualisierte, aber vom Aufbau gleichbleibende Liste idealerweise durch Ausblenden (oder zur Not Löschen) diverser Spalten, Anpassung einiger Spaltenbreiten in unterschiedliche Festwerte sowie Zeilenumbruch in Zeile 1, Linksbündiger Einzug in Spalte A für meinen Gebrauch optimieren. Dazu habe ich über den Excel-Reiter "Automataisieren" das entsprechende Script aufgezeichnet. Wenn ich das nun in einer "jungfräulichen" Liste ausführe wird auch das meiste erledigt, jedoch die Spaltenbreite wird scheinbar willkürlich verändert. Ich habe gelesen, wenn die Spaltenbreite unterschiedlich ist, wird "Null" gesetzt (was immer das heißt), aber das Problem besteht auch, wenn ich für die relevanten, ausgefüllten Spalten die gleiche Breite angebe.
Hier der Script Code:
function main(workbook: ExcelScript.Workbook) {
let selectedSheet = workbook.getActiveWorksheet();
// Delete range D:D on selectedSheet
selectedSheet.getRange("D:D").delete(ExcelScript.DeleteShiftDirection.left);
// Delete range P:W on selectedSheet
selectedSheet.getRange("P:W").delete(ExcelScript.DeleteShiftDirection.left);
// Delete range Y:Y on selectedSheet
selectedSheet.getRange("Y:Y").delete(ExcelScript.DeleteShiftDirection.left);
// Delete range AD:AF on selectedSheet
selectedSheet.getRange("AD:AF").delete(ExcelScript.DeleteShiftDirection.left);
// Set width of column(s) at range A:A on selectedSheet to 12
selectedSheet.getRange("A:A").getFormat().setColumnWidth(12);
// Set width of column(s) at range G:G on selectedSheet to 12
selectedSheet.getRange("G:G").getFormat().setColumnWidth(12);
// Set width of column(s) at range I:S on selectedSheet to 12
selectedSheet.getRange("I:S").getFormat().setColumnWidth(12);
// Set wrap text to true for range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().setWrapText(true);
// Set text orientation to 0 for range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().setTextOrientation(0);
// Indent set to 0 for range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().setIndentLevel(0);
// Set horizontal alignment to ExcelScript.HorizontalAlignment.left for range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().setHorizontalAlignment(ExcelScript.HorizontalAlignment.left);
// Set wrap text to true for range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().setWrapText(true);
// Set text orientation to 0 for range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().setTextOrientation(0);
// Indent set to 0 for range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().setIndentLevel(0);
// Set horizontal alignment to ExcelScript.HorizontalAlignment.general for range 63:63 on selectedSheet
selectedSheet.getRange("63:63").getFormat().setHorizontalAlignment(ExcelScript.HorizontalAlignment.general);
selectedSheet.getRange("63:63").getFormat().setIndentLevel(0);
// Set text orientation to 0 for range 63:63 on selectedSheet
selectedSheet.getRange("63:63").getFormat().setTextOrientation(0);
// Indent set to 0 for range 63:63 on selectedSheet
selectedSheet.getRange("63:63").getFormat().setIndentLevel(0);
// Unmerge range 63:63 on selectedSheet
selectedSheet.getRange("63:63").unmerge();
// Set horizontal alignment to ExcelScript.HorizontalAlignment.center for range 63:63 on selectedSheet
selectedSheet.getRange("63:63").getFormat().setHorizontalAlignment(ExcelScript.HorizontalAlignment.center);
selectedSheet.getRange("63:63").getFormat().setIndentLevel(0);
// Set text orientation to 0 for range 63:63 on selectedSheet
selectedSheet.getRange("63:63").getFormat().setTextOrientation(0);
// Indent set to 0 for range 63:63 on selectedSheet
selectedSheet.getRange("63:63").getFormat().setIndentLevel(0);
// Merge range 63:63 on selectedSheet
selectedSheet.getRange("63:63").merge(false);
}
Und so sieht das (fehlerhafte) Ergebniss aus:
Kann jemand helfen?
LG
zuerstmal: Ich bin dummer Endanwender mit ein paar rudimentären VBA-Kenntnissen, also verzeiht mir bitte meine Unwissenheit und blöde Rückfragen, vielen Dank vorab!
Zu meinem Problem:
Ich möchte eine wöchentlich aktualisierte, aber vom Aufbau gleichbleibende Liste idealerweise durch Ausblenden (oder zur Not Löschen) diverser Spalten, Anpassung einiger Spaltenbreiten in unterschiedliche Festwerte sowie Zeilenumbruch in Zeile 1, Linksbündiger Einzug in Spalte A für meinen Gebrauch optimieren. Dazu habe ich über den Excel-Reiter "Automataisieren" das entsprechende Script aufgezeichnet. Wenn ich das nun in einer "jungfräulichen" Liste ausführe wird auch das meiste erledigt, jedoch die Spaltenbreite wird scheinbar willkürlich verändert. Ich habe gelesen, wenn die Spaltenbreite unterschiedlich ist, wird "Null" gesetzt (was immer das heißt), aber das Problem besteht auch, wenn ich für die relevanten, ausgefüllten Spalten die gleiche Breite angebe.
Hier der Script Code:
function main(workbook: ExcelScript.Workbook) {
let selectedSheet = workbook.getActiveWorksheet();
// Delete range D:D on selectedSheet
selectedSheet.getRange("D:D").delete(ExcelScript.DeleteShiftDirection.left);
// Delete range P:W on selectedSheet
selectedSheet.getRange("P:W").delete(ExcelScript.DeleteShiftDirection.left);
// Delete range Y:Y on selectedSheet
selectedSheet.getRange("Y:Y").delete(ExcelScript.DeleteShiftDirection.left);
// Delete range AD:AF on selectedSheet
selectedSheet.getRange("AD:AF").delete(ExcelScript.DeleteShiftDirection.left);
// Set width of column(s) at range A:A on selectedSheet to 12
selectedSheet.getRange("A:A").getFormat().setColumnWidth(12);
// Set width of column(s) at range G:G on selectedSheet to 12
selectedSheet.getRange("G:G").getFormat().setColumnWidth(12);
// Set width of column(s) at range I:S on selectedSheet to 12
selectedSheet.getRange("I:S").getFormat().setColumnWidth(12);
// Set wrap text to true for range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().setWrapText(true);
// Set text orientation to 0 for range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().setTextOrientation(0);
// Indent set to 0 for range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().setIndentLevel(0);
// Set horizontal alignment to ExcelScript.HorizontalAlignment.left for range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().setHorizontalAlignment(ExcelScript.HorizontalAlignment.left);
// Set wrap text to true for range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().setWrapText(true);
// Set text orientation to 0 for range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().setTextOrientation(0);
// Indent set to 0 for range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().setIndentLevel(0);
// Set horizontal alignment to ExcelScript.HorizontalAlignment.general for range 63:63 on selectedSheet
selectedSheet.getRange("63:63").getFormat().setHorizontalAlignment(ExcelScript.HorizontalAlignment.general);
selectedSheet.getRange("63:63").getFormat().setIndentLevel(0);
// Set text orientation to 0 for range 63:63 on selectedSheet
selectedSheet.getRange("63:63").getFormat().setTextOrientation(0);
// Indent set to 0 for range 63:63 on selectedSheet
selectedSheet.getRange("63:63").getFormat().setIndentLevel(0);
// Unmerge range 63:63 on selectedSheet
selectedSheet.getRange("63:63").unmerge();
// Set horizontal alignment to ExcelScript.HorizontalAlignment.center for range 63:63 on selectedSheet
selectedSheet.getRange("63:63").getFormat().setHorizontalAlignment(ExcelScript.HorizontalAlignment.center);
selectedSheet.getRange("63:63").getFormat().setIndentLevel(0);
// Set text orientation to 0 for range 63:63 on selectedSheet
selectedSheet.getRange("63:63").getFormat().setTextOrientation(0);
// Indent set to 0 for range 63:63 on selectedSheet
selectedSheet.getRange("63:63").getFormat().setIndentLevel(0);
// Merge range 63:63 on selectedSheet
selectedSheet.getRange("63:63").merge(false);
}
Und so sieht das (fehlerhafte) Ergebniss aus:
Kann jemand helfen?
LG