MATLAB Answers

0

append new rows in the middle of an excel file's sheet

Asked by Amine ELMOUATAMID on 26 Apr 2019
Latest activity Commented on by Guillaume
on 28 Apr 2019
I am working on an excel file using actx function
then I want to add some rows in the middle of the sheet
is there a way to solve this ?
Captureaa.PNG

  1 Comment

Sign in to comment.

Products

1 Answer

Answer by Guillaume
on 26 Apr 2019
 Accepted Answer

Probably the easiest way to find out the code you need to use is to record a macro in excel while you do the insertion and fix the formatting (which excel will inevitably mess up). The code you then use in matlab will be more or less identical to the VBA code generated by the macro (with adjustments for the difference in language syntax).

  2 Comments

is there something like that in matlabCaptureaa.PNG
For some reasons, I never saw your comment until today.
Once you've connected to excel with actxserver you use more or less the same commands in matlab as you would in VBA. So, yes:
excel = actxserver('Excel.Application'); %connect to excel
wb = excel.Workbooks.Open('C:\somewhere\somefolder\somefile.xlsx');
ws = wb.Worksheets.Item('Sheet1'); %One major difference is that you HAVE to use the Item property to access elements of collections
rg = ws.Range('1:4');
rg.Insert(-4121); %The other difference is that you have to use numeric values for constants. -4121 is the numeric value of XlShiftDown

Sign in to comment.