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

Announcements

News and Announcements icon
Community site session details

Community site session details

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

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 (1)
  • Verified answer
    rzaneti Profile Picture
    4,481 Super User 2026 Season 1 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

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Leaderboard > Power Automate

#1
Haque Profile Picture

Haque 523

#2
Valantis Profile Picture

Valantis 318

#3
David_MA Profile Picture

David_MA 235 Super User 2026 Season 1

Last 30 days Overall leaderboard