VB отваря конкретна версия на Excel, когато са инсталирани две

Разглеждам тази част от кода, която взех от тук, защото бих искал използваи го. Проблемът е, че използвах 2003, за да създам файла "test.xls", но когато стартирам този код, той се отваря през 2007. Има ли някакъв начин да го накарам да се отвори в конкретна версия на Excel, а не в стандартната?

GoSub, GuiOpen
pweb := COM_AtlAxCreateControl(WinExist(), A_Temp . "\test.xls")
pxlb := COM_Invoke(pweb, "Document")      ; Excel Workbook
pxls := COM_Invoke(pxlb, "Worksheets", 1)   ; Excel Worksheet
Return

GuiOpen:
Gui, +Resize +LastFound
Gui, Show, w800 h600 Center, Excel
COM_AtlAxWinInit()
Return
GuiClose:
Gui, Destroy
COM_Invoke(pxlb, "Save")
COM_Release(pxls)
COM_Release(pxlb)
COM_Release(pweb)
COM_AtlAxWinTerm()
ExitApp

person Geoff    schedule 30.07.2010    source източник


Отговори (1)


Това е свързано с начина, по който този файл е свързан в Windows... опитайте това в отворена папка:

Инструменти > Опции за папки > Типове файлове

Потърсете xls файла и сменете коя програма го отваря. Ако не го намерите, просто го добавете и съответно променете опциите му.

person RaptorX    schedule 31.07.2010
comment
Разширението е присвоено правилно, ако щракна два пъти върху файла, той се отваря с 2003 и когато щракна два пъти върху xlsx файлове, те се отварят с 2007. Проблемът е, когато се опитам да го отворя програмно. Не е само с отварянето на файлове, ако искам да създам обект на Excel.Application, той винаги ще създаде 2007, не мога да го накарам да отвори обект на Excel.Application през 2003. - person Geoff; 01.08.2010