Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Excel VBA to INSERT columns
Message
From
30/11/2005 21:56:49
 
 
To
All
General information
Forum:
Visual FoxPro
Category:
Third party products
Title:
Excel VBA to INSERT columns
Environment versions
Visual FoxPro:
VFP 8 SP1
OS:
Windows XP SP2
Network:
Windows XP
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01073561
Message ID:
01073561
Views:
70
Hi all,

I've got the job of converting Excel sheets from customers into our system's tables.
The customer data could have come from anything, from an Excel spreadsheet(s) to FileMakerPro 'exported' to Excel or ???

I thought I'd tackle the toughest job first... converting text fields larger than 254 characters into multiple adjacent columns of 254 chunks so that they can be re-assembled as memo fields later.

After much trial and tribulation I've got some VBA code that does the job BUT the insertion of columns takes FOREVER. In my test worksheet with 6966 rows it takes ovr an HOUR to insert a SINGLE COLUMN.

I captured a macro of doing an INSERT Column, which happens nice and fast, and found that the generated code was a Range("DT:DT").Select then INSERT(Select) or something close to that.

The trouble is, I can't find the way to correctly identify the column that way for a RANGE.
I've been using the following construct:
For aa = 1 To Worksheets("Sheet1").Rows.Count
    Worksheets("Sheet1").Cells(aa, xx + 1).Insert (xlShiftToRight)
Next aa
and this takes an hour per insert!

I don't know how many columns or rows the spreadsheet to be processed will have, so I can't use fixed column IDs like "DT".

Can someone please tell me how to dynamically come up with the format required to allow me to use the SELECT/INSERT technique.
Strangely (at least to me) the property called "Cells" (used above) implies more than 1 by its name but I can't find a clear example of how I might do that code-wise.

Any help appreciated.
Next
Reply
Map
View

Click here to load this message in the networking platform