web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / Deleting Multiple Colu...
Power Automate
Unanswered

Deleting Multiple Columns in Excel via OfficeScript in Power Automate

(0) ShareShare
ReportReport
Posted on by 4

I recorded an Office Script which I will share below that deletes multiple columns and have it running via "Run Script from Excel Online (Business)" while it works what happens is once column A is deleted and the column's shift it then begins a cycle of deleting the wrong columns. This even happens in power automate Desktop if I do them one at a time with the "Delete Column from Excel worksheet".

 

Is there a way to delete all the columns you want at once without shifting the sheet and it deleting the wrong ones. 

 

 

 

 

function main(workbook: ExcelScript.Workbook) {
	let selectedSheet = workbook.getActiveWorksheet();
	// Delete range A:A on selectedSheet
	selectedSheet.getRange("A:A").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range D:D on selectedSheet
	selectedSheet.getRange("D:D").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range E:E on selectedSheet
	selectedSheet.getRange("E:E").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range H:H on selectedSheet
	selectedSheet.getRange("H:H").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range K:K on selectedSheet
	selectedSheet.getRange("K:K").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range L:L on selectedSheet
	selectedSheet.getRange("L:L").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range N:N on selectedSheet
	selectedSheet.getRange("N:N").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range O:O on selectedSheet
	selectedSheet.getRange("O:O").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range P:P on selectedSheet
	selectedSheet.getRange("P:P").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range Q:Q on selectedSheet
	selectedSheet.getRange("Q:Q").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range R:R on selectedSheet
	selectedSheet.getRange("R:R").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range S:S on selectedSheet
	selectedSheet.getRange("S:S").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range T:T on selectedSheet
	selectedSheet.getRange("T:T").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range V:V on selectedSheet
	selectedSheet.getRange("V:V").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range Y:Y on selectedSheet
	selectedSheet.getRange("Y:Y").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range Z:Z on selectedSheet
	selectedSheet.getRange("Z:Z").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range AA:AA on selectedSheet
	selectedSheet.getRange("AA:AA").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range AC:AC on selectedSheet
	selectedSheet.getRange("AC:AC").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range AB:AB on selectedSheet
	selectedSheet.getRange("AB:AB").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range AE:AE on selectedSheet
	selectedSheet.getRange("AE:AE").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range AF:AF on selectedSheet
	selectedSheet.getRange("AF:AF").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range AH:AH on selectedSheet
	selectedSheet.getRange("AH:AH").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range AI:AI on selectedSheet
	selectedSheet.getRange("AI:AI").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range AJ:AJ on selectedSheet
	selectedSheet.getRange("AJ:AJ").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range AK:AK on selectedSheet
	selectedSheet.getRange("AK:AK").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range AL:AL on selectedSheet
	selectedSheet.getRange("AL:AL").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range AN:AN on selectedSheet
	selectedSheet.getRange("AN:AN").delete(ExcelScript.DeleteShiftDirection.left);
	// Delete range AO:AO on selectedSheet
	selectedSheet.getRange("AO:AO").delete(ExcelScript.DeleteShiftDirection.left);
}

 

 

 

 

 

Categories:
I have the same question (0)
  • Verified answer
    rzaneti Profile Picture
    4,241 Super User 2025 Season 2 on at

    Hi @TinkerTom ,

     

    I had a similar issue recently. To solve it, I started to delete the columns from the rightest one, as the column shift will not affect the following lines of code.

     

    In summary, you must change your code order, starting the delete from "AO" and finishing it in "A". 

     

    Also, for those future readers that are starters with Office Scripts, I'm sharing a blog post about how to get started with it: http://digitalmill.net/2023/06/19/get-started-with-office-scripts/ 

     

    Let me know if it works for you or if you need any additional help!

     

    -------------------------------------------------------------------------
    If this is the answer for your question, please mark the post as Solved.
    If this answer helps you in any way, please give it a like.

    http://digitalmill.net/ 

  • TinkerTom Profile Picture
    4 on at

    That appears to have worked.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Forum hierarchy changes are complete!

In our never-ending quest to improve we are simplifying the forum hierarchy…

Ajay Kumar Gannamaneni – Community Spotlight

We are honored to recognize Ajay Kumar Gannamaneni as our Community Spotlight for December…

Leaderboard > Power Automate

#1
Michael E. Gernaey Profile Picture

Michael E. Gernaey 522 Super User 2025 Season 2

#2
Tomac Profile Picture

Tomac 364 Moderator

#3
abm abm Profile Picture

abm abm 243 Most Valuable Professional

Last 30 days Overall leaderboard