Excel Отговори част I катийонна
Excel Отговори Част I: Excel.Application
Как да качите нов вариант на Excel, или да се свържете с работещ например Excel.exe? Как да изключите от Excel и затваряне на копието?
За да се определи нова инстанция на Excel.Application дали работи или се присъедини към вече работи, използване TExcelApplication.ConnectKind собственост. По подразбиране, този имот е ckRunningOrNew (постоянна определена в единица OleServer). Въпреки това, се препоръчва, ако не и на конкретната нужда, винаги тече нов екземпляр на Excel.Application да се избегнат конфликти с изпълнявано копие на Excel.Application рано. TExcelApplication.AutoQuit имот в подразбиране строителя False на (само ExcelXP модул за True) - това означава, че ако искате да прекъснете връзката, когато цялото Excel работата (в близост), тогава ще трябва да се обадя метод TExcelApplication.Quit или задайте имот равен TExcelApplication.AutoQuit Вярно е.
Както се казва в "Най-добри практики за настройване на Range имоти". "Кодът използва подбор генерира Excel макро запис, често се използва за откриване на обект или метод, който да работи. Това е добра идея, с изключение на факта, че записаният макрос не е оптимизирана за потребителя. Обикновено, Excel, когато записвате макрос използва подбор и промяна на избора на обекта по време на запис Какво задача ". Т.е. използване Selection е по избор и не се препоръчва за предприемача. Цитат на едно и също място: "На практика, обадете се на Изберете метод на обекта само ако никога не сте използвате Изберете метод, когато са определени за промяна на избрания от потребителя позиция, просто защото е удобно за вас, като програмист, ако зададете свойствата на обекта Range, че винаги да имате .. алтернатива. отказът от Изберете метода не само прави кода си по-бързо. но, моля, на потребителите на вашата програма (това прави по-доволни потребители). " Тази тема е засегна тук.
Защо да не се използва Excel.Application.Range и трябва ExcelWorksheet.Range?
Използването ExcelApplication.Range ви позволява да работите само на активния лист активната работна книга, ако отворите, докато работите друга книга или да направим друг активен лист в работната книга (например, добавяне на нова страница), данните ще бъдат направени, за да го в активния в момента листа. За да се избегне, попадащи в неловко положение, винаги използвайте Range обект ExcelWorksheet обекта. Това не само ще предпази вашия код чрез въвеждане ", където Бог ще", но ще запиша данни на няколко страници и дори книги, без да променя ActiveSheet и ActiveCell.
Ако Excel работи и потребителят е в Excel, в същото време, всички действия, които се опитват да се свържат с Excel и допринасят данни към него, причината за грешката. Как да се избегне това?
Когато се работи с молба за напреднали Excel, тя може да бъде зает, ако потребителят редактира стойността в клетка, или е отворил или модален диалогов прозорец (например, "Отваряне") в този момент. За да се избегне тази ситуация, винаги започнете нова копие на Excel.Application и инсталиране на Interactive собственост на False, тя ще забрани на потребителя да направи нищо в Excel'e или затворете другия пуснат на Excel.Application: