Skrive VBA i Excel 2007 for bruk i Excel 2003

stemmer
7

Der jeg er på utviklerne har blitt oppdatert til Excel 2007, men de fleste av brukerne ikke har. Jeg bygger et regneark mal (* XLT) for en bruker som er trenger litt VBA-kode inkludert, og jeg lurer på hvilke saker jeg sannsynligvis til å kjøre inn i å bygge denne i 2007 i stedet for 2003? Jeg har ikke tilgang til en maskin med Excel 2003 for testing, og jeg er bekymret for dette prosjektet er på vei mot katastrofe.

Publisert på 13/10/2008 klokken 14:51
kilden bruker
På andre språk...                            


5 svar

stemmer
8

VBA språket er ikke endret, men det er flere objekter i Office 2007 som ikke er i Office 2003. Selvsagt vil dette føre til en runtime error når du prøver å få tilgang til disse elementene i en 2003-miljø. Hva er det som hindrer deg fra å sette på en virtuell maskin med Excel 2003 for å utvikle seg under?

Svarte 13/10/2008 kl. 15:03
kilden bruker

stemmer
2

billb2112 er riktig. Det er mange endringer i Excel 2007 enn Excel 2003 som ikke er bakoverkompatibel. Mens språket ikke kan ha endret seg, har objektene er oppdatert. Noen har hatt flere egenskaper lagt, noen virker forskjellig og noen funksjoner i Excel har endret seg.

Du må være veldig forsiktig at det du koden fungerer i Excel 2003. Jeg ville foreslå som billb2112 sagt at du får en virtuell maskin for å ikke bare test i, men også til å kode i. Jeg gjør alle mine Excel utvikling for kunder som kun har 2003 i 2003 i en maskin. Merk at hvis brukerne har Excel 2002 eller 2000 er det enda flere forskjeller som du går tilbake og du vil rett og slett få runtime feil på noen kode som disse eldre versjoner ikke støtter.

oppdatering dessverre Jeffs Svaret er ikke helt riktig. mens ja VBA språket ikke har blitt oppdatert det er ikke det samme i 2007 som i 2003. som i 2003 er ikke det samme som i 2002 etc. hva som har skjedd er har blitt lagt ekstra og ekstra funksjoner og argumenter for funksjoner. for eksempel er det flere alternativer i FINN-funksjonen i Excel i 2003 enn i 2002. dermed hvis du spille inn en makro (den beste måten å finne disse problemene) i 2003, og deretter kjøre den i 2002 vil ha Run tiden feil knyttet til nye argumenter som rett og slett ikke fungerer i 2002 VBA editor. følge den samme prosessen for funksjoner som har forandret seg i Excel 2007 og deretter gå tilbake til 2003 for å teste vil hjelpe deg å finne disse problemene. Noen eksempler er betinget formatering, farger (temaer) og en rekke nye regnearkfunksjoner. jon peltier har best råd fra så henseende - utvikle seg i den eldste mulig versjonen som klienten / brukeren vil bruke. Virtual PC 2007 er gratis å laste ned og installere. vil du bare trenger en lisensiert kopi av XP / Vista og Office til å installere for å kjøre i den.

Svarte 15/10/2008 kl. 04:51
kilden bruker

stemmer
5

Snarere enn avhengig av en sannsynligvis ufullstendig liste over objekter og metoder som har blitt lagt til Excel 2007 formål bibliotek, er den beste (mmost relliable) praksis å alltid utvikle seg i den eldste versjonen av Excel trolig bli brukt til å kjøre koden.

Svarte 04/11/2008 kl. 02:50
kilden bruker

stemmer
-3

Jeg pleide å utvikle en rekke makroer etter 2003, hva en POTA ,, ting som Finn, Dir og noen andre er ikke tilgjengelig eller noe forandring. derfor noen erros kan forventes, jeg pleide å telle fra 65 000 rad til første ikke tom rad for å telle radene å jobbe på .... nå flere rader betyr mer arbeid å gjøre

Svarte 30/09/2009 kl. 15:21
kilden bruker

stemmer
4

En forskjell jeg oppdaget er at en subrutine må ha en annen signatur for å bli kalt fra en meny (i Excel 2003) enn når de kalles fra båndet (i Excel 2007). Whatsmore, gjør Excel 2003 ikke gjenkjenner IRibbonControl og kaster kompilere feil.

Å jobbe mot grense versjon kompatibilitet, jeg bruker en betinget kompilering Argument og deretter sjekke at i pre-prosessor makroer.

f.eks

#If USINGRIBBON Then
    Public Sub CallFromRibbon(control As IRibbonControl)
#Else
    Public Sub CallFromRibbon()
#End If
    ' Code here
   End Sub

Dette betyr at du må spare en versjon av tillegget med USINGRIBBON flagget satt til usann (for Excel2003) og en annen med USINGRIBBON flagget satt til true (for Excel2007), men dette er langt enklere enn å opprettholde to helt separate codebases.

Svarte 08/02/2010 kl. 09:54
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more