Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Selected Range
Message
 
À
21/12/1999 16:40:18
Cetin Basoz
Engineerica Inc.
Izmir, Turquie
Information générale
Forum:
Visual FoxPro
Catégorie:
COM/DCOM et OLE Automation
Titre:
Divers
Thread ID:
00306941
Message ID:
00306975
Vues:
41
>>>>Hi Troops,
>>>>
>>>>I've been goofing around with Excel spreadsheets as a potential source for some data. The one thing I haven't been able to figure out is how to allow the user to select a range within a given sheet and retrieve that range. I've done with DDE with Excel and with versions of Lotus 1-2-3 up to and including Release 5. Unfortunately, Lotus, in its infinite wisdom (gag!), decided to drop DDE support after Release 5. I've played around with its (1-2-3's) OLE automation object, but it's so poorly documented that getting anything to work correctly almost takes an act of Congress.
>>>>
>>>>I'm aware of the InputBox method for retrieving a range in Excel, but that is less than satisfactory. I've also looked at CurrentRegion and UsedRange, but neither seem to give me what I want.
>>>>
>>>>Any ideas?
>>>
>>>
ox.Selection.Address(.f.,.f.,xlA1) ?
>>Thanks, Cetin. That should do it. Then all I have to do is get a Range object from the active sheet, right?
>
>
George,
>There is no one only selection in excel. There could be different selected areas per sheet at the same time. Selection applies to Application and Window. Test with both. Also you could create a toolbar&button in excel and via VFPCOM bind its click event to your VFP proc ;)

Hi Cetin,

I know, but I'm only interested in the ActiveSheet, so the following snippet works like a champ
* oExcel is already created and
* oWorkbook was returned by the Workbooks.Open method
#DEFINE XLA1 1
lcrange = oExcel.Selection.Address(.F., .F., XLA1)
lnpt = AT(":", lcrange)
IF lnpt # 0
  lctop = LEFT(lcrange, lnpt - 1)
  lcbottom = SUBSTR(lcrange, lnpt + 1)
  oRange = oWorkbook.ActiveSheet.Range(lctop, lcbottom)
  FOR EACH oCell IN oRange.Cells
   * What I need to do here.
  NEXT
ENDIF
In the above, lcrange, corresponds to the currently selected sheet. It's just what I want and need.

Thanks a bunch, again!:-)
George

Ubi caritas et amor, deus ibi est
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform