|
|
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
Может быть уже кто-нибудь научисля создавать новую книгу Excel с именем отличным от КнигаXX? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 11:03 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
Тогда предлагаю такой вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Пример использования: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 09:05 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
Автор: XNut Тогда предлагаю такой вариант: Function NewBook(name As String) As Workbook Dim s As String, b As Workbook s = "c:\temp\" & name ' кстати у меня нет такой папки ;-) а если и есть у пользователя может не быть прав на запись в эту папкуа ещё в этой папке может быть файл с таким именем Set b = Workbooks.Add ' здесь создаем в памяти, и не шаблон, а просто пустую книгу b.SaveAs s 'Создаём не шаблон, а просто пустую книгу во временной папке 'b.Close ' закрывать необязательно, это лишние затраты Set NewBook = b 'Workbooks.Add(s) 'Новая книга откроется с именем шаблонаSet b = Nothing End Function Пример использования: Sub test() NewBook "НовоеИмя" End Sub А для чего эти телодвижения? Да и ещё объявлять переменную b As Workbook не обязательно, можно воспользоватся именем функции. Минус функции в том, что она сохраняет что-то на диск, проверок на успешность операции не производится и может привести к печальным последствиям. Вообщем 3 с большим минусом за такой код ;) Ну и тема для чего все это нужно не раскрыта :D Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 09:27 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос А для чего эти телодвижения? Да и ещё объявлять переменную b As Workbook не обязательно, можно воспользоватся именем функции. Минус функции в том, что она сохраняет что-то на диск, проверок на успешность операции не производится и может привести к печальным последствиям. Вообщем 3 с большим минусом за такой код ;) Ну и тема для чего все это нужно не раскрыта :D Posted via ActualForum NNTP Server 1.4 "телодвижения" для того, чтобы сформированный отчет назывался "Отчет_за_январь_2008_XX", а не "книга1" Использование имени функции как переменной считаю плохим стилем программирования Конечно, что-то сохраняется. Если вы умеете, по другому задать имя новой книге, то поделитесь И вообще, не вам меня оценивать, и пост не об этом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 12:42 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
> Автор: XNut > Игорь Горбонос > А для чего эти телодвижения? > Да и ещё объявлять переменную b As Workbook не обязательно, > можно > воспользоватся именем функции. Минус функции в том, что она > сохраняет что-то > на диск, проверок на успешность операции не производится и > может привести к > печальным последствиям. > Вообщем 3 с большим минусом за такой код ;) > > Ну и тема для чего все это нужно не раскрыта :D > > "телодвижения" для того, чтобы сформированный отчет назывался > "Отчет_за_январь_2008_XX", а не "книга1" Здесь я исповедую несколько другой подход. Сначала делаю отчет в свежую книгу или созданую из шаблона, а после того как отчет готов, тогда показываю пользователю и на его усмотрение, сохранять или нет этот отчет и он придумывает название. Тогда сохраненный сохраненный отчет, это уже на совести пользователя, и если он начнет "разбрасывать" эти отчеты где попало это вопрос к нему, а если эти отчеты начнет разбрасывать программа - это вопрос ко мне, почему я разбрасываю конфиденциальную информацию. ;) > > Использование имени функции как переменной считаю плохим стилем > программирования Ты не можешь вернуть из функции результат действия не присвоив результат имени функции. Параметры по ссылке в данном случае не рассматриваем. В связи с этим получается что использование функций плохой стиль? :) В своем коде ты делаешь лишние действия, большое количество лишних действий по итогу сказываются на производительности. Это к плохому стилю програмирования вообще. > > Конечно, что-то сохраняется. Если вы умеете, по другому задать имя > новой книге, то поделитесь По другому ни как. Но это и не моя проблема. Пользователю нужен отчет для просто посмотреть цифры. И все! Он закрывает Ексель и у него никто ничего не спрашивает и отчет с конфиденциальной информацией остается на диске, где его может взять кто угодно. > И вообще, не вам меня оценивать, Прошу прощения за оценку! И все же обращать внимание на смайлики ;) > и пост не об этом Ты привел код, я его покритиковал со своей точки зрения. Привел тебе несколько условий прикоторых код не выполнит то, ради чего он писался. З.Ы. Ещё раз приношу свои извинения, если чем-то задел. Это мое мнение и я постарался изложить его. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 14:41 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
XNutИ вообще, не вам меня оцениватьНам, нам. Раз уж выложили на всеобщее обозрение, оценивать будут все, кому не лень. А Игорь в основном прав. XNutИспользование имени функции как переменной считаю плохим стилем программированияТо есть всем, кроме себя, любимого, вы отказываете в праве на оценку? Можно ведь вообще ничем не пользоваться. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 15:09 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
Если функцию F можно вызвать не указав аргументы, то вы уверены, что при использовании ее имени не произойдет рекурсии? В этом можно быть уверенным только в операциях присвоения Let, Set. А что будет при F.Property , можно только гадать Использование временой переменной на производительности не сказывается. А использование With иногда (даже редко, например при использовании CurrentDb в MS Access) является ненадежным. Еще почитайте примеры от Microsoft (Help, MSDN), там тоже все на 3 с минусом И последнее. На диск сохраняется пустая книга! После чего на ее основе создается новая, которая и будет заполнятся "конфиденциальными" данными, но не будет сохраняться автоматически. Учитесь читать код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 16:03 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
Сказал бы спасибо. Указали на ошибки и привели более хороший пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 16:50 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
Последний из приведенных примеров даже не относится к теме И в чем ошибки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 16:55 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
> Автор: XNut > Если функцию F можно вызвать не указав аргументы, то вы уверены, что > при использовании ее имени не произойдет рекурсии? В этом можно быть > уверенным только в операциях присвоения Let, Set. А что будет при > F.Property, можно только гадать Может в других языках это и приводит к таким последствиям, но за 7 лет использования VB6 никогда не сталкивался с такой проблемой. Поэтому даже не гадаю ;) > > Использование временой переменной на производительности не > сказывается. Ну, я не был бы таким категоричным, потому, что полно примеров как раз ускорения работы при использовании временной переменной ;) например при выброске отчета в Ексел для доступа к ячейке каждый раз писать не: Код: plaintext 1. 2. Код: plaintext 1. 2. 3. 4. > А использование With иногда (даже редко, например при использовании > CurrentDb в MS Access) является ненадежным. Здесь ничего не скажу, пока никаких проблем не было. И с акцесом вообще не работал. :( > Еще почитайте примеры от Microsoft (Help, MSDN), там тоже все на 3 с > минусом Примеры из Help и MSDN предназначены для объяснения принципа или особенности работы чего-то и поэтому сделанны для чайника и для использования требуют доводки напильником ;) > > И последнее. На диск сохраняется пустая книга! Я хотел сказать, что в твоем случае, при закрытии Екселя с твоим отчетом будет задан один вопрос: Книгу меняли! Сохранять или нет? А в моем случае, даже если пользователь и нажмет Сохранять!( по ошибке или из-за спешки ) появится ещё одно окно с просьбой ввести имя файла. И если и после этого нажали Сохранить, то это уже полностью на совести пользователя. Если он на два окна не среагировал как нужно, то встающие вопросы снова не ко мне, а к пользователю. > После чего на ее основе создается новая, которая и будет заполнятся > "конфиденциальными" данными, но не будет сохраняться автоматически. А вот здесь ты не прав! Книга может создаваться на основе шаблона. А в твоем случае просто открывается СОХРАНЕННАЯ и ЗАКРЫТАЯ тобой книга. А это расточительная операция. С точки зрения стиля программирования! Да она пуста. Но книга уже сохранена! и все действия происходят в ФАЙЛОМ на диске, если пользователя "выбъет" из Екселя при перезапуске Екселя он спросит Вы работали с книгой и не сохранили её, Восстановить??? Есть ещё аргументы, но это уже специфика восстановления данных офисных приложений :) > Учитесь читать код Вот в этом и проблема, что умею я читать код, и не только твой. А ты не совсем понимаешь что будет делаться при выполнении твоего кода. Я пытаюсь поделится с тобой своим опытом. Или ты думаешь что мне больше нечего делать? Вообщем пословицу о том кто на чьих ошибках учится знаешь? :) > Тема Ответить Сообщение > Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 17:03 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
Если функцию F можно вызвать не указав аргументы, то вы уверены, что при использовании ее имени не произойдет рекурсии? В этом можно быть уверенным только в операциях присвоения Let, Set. А что будет при F.Property, можно только гадатьЕсли бы да кабы, то во рту росли грибы. Нужно отдавать себе отчет, в том, что делаешь, и знать синтаксис не хуже интерпретатора, чтобы не гадать и не кодить ерунду. А использование With иногда (даже редко, например при использовании CurrentDb в MS Access) является ненадежным.Это проблемы CurrentDb, а не With. Я вот натыкался на глюк For Each .. Next при работе с WMI. И что, теперь отказаться от For Each? Пока не увижу код без CurrentDb, подтверждающий ненадежность With, буду считать это чепухой. Потому что использую With очень активно и на его глюки ни разу в жизни не натыкался. На диск сохраняется пустая книга! После чего на ее основе создается новая, которая и будет заполнятся "конфиденциальными" данными, но не будет сохраняться автоматически. Учитесь читать кодИ где же раньше было сказано, что нужно именно так, а не эдак? Учитесь писать ТЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 17:08 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
говоря "Использование временой переменной на производительности не сказывается" я имел ввиду, что это не ухудшает свойств программы, т.к. вы утвержадили, что это не оптимально Игорь Горбонос > > И последнее. На диск сохраняется пустая книга! > После чего на ее основе создается новая, которая и будет заполнятся > "конфиденциальными" данными, но не будет сохраняться автоматически. А вот здесь ты не прав! Книга может создаваться на основе шаблона. А в твоем случае просто открывается СОХРАНЕННАЯ и ЗАКРЫТАЯ тобой книга. А это расточительная операция. С точки зрения стиля программирования! Да она пуста. Но книга уже сохранена! и все действия происходят в ФАЙЛОМ на диске, если пользователя "выбъет" из Екселя при перезапуске Екселя он спросит Вы работали с книгой и не сохранили её, Восстановить??? Есть ещё аргументы, но это уже специфика восстановления данных офисных приложений :) Это уже совсем смешно. Откройте Help, и почитайте о методе Add ! Вы путаете его с методом Open ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 17:20 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
Antonariy [quot ]На диск сохраняется пустая книга! После чего на ее основе создается новая, которая и будет заполнятся "конфиденциальными" данными, но не будет сохраняться автоматически. Учитесь читать кодИ где же раньше было сказано, что нужно именно так, а не эдак? Учитесь писать ТЗ. Такова наша тема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 17:24 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
XNutТакова наша темаНаша тема - Новая книга Excel с произвольным именем. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 17:34 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
> Автор: XNut > говоря "Использование временой переменной на производительности не > сказывается" я имел ввиду, что это не ухудшает свойств программы, т.к. вы > утвержадили, что это не оптимально Ладно, набьёшь с моё шишек, поймешь :) > Игорь Горбонос > > > > > И последнее. На диск сохраняется пустая книга! > > После чего на ее основе создается новая, которая и будет > заполнятся > > "конфиденциальными" данными, но не будет сохраняться > автоматически. > > А вот здесь ты не прав! Книга может создаваться на основе > шаблона. А в твоем > случае просто открывается СОХРАНЕННАЯ и ЗАКРЫТАЯ тобой книга. А > это > расточительная операция. С точки зрения стиля программирования! > Да она > пуста. Но книга уже сохранена! и все действия происходят в > ФАЙЛОМ на диске, > если пользователя "выбъет" из Екселя при перезапуске Екселя он > спросит Вы > работали с книгой и не сохранили её, Восстановить??? > Есть ещё аргументы, но это уже специфика восстановления данных > офисных > приложений :) > > Это уже совсем смешно. Откройте Help, и почитайте о методе Add! Вы > путаете его с методом Open Открыл, почитал, провел следственный эксперимент! Признаю, был не прав :) Тогда следующий "наезд" - почему не удаляешь сохраненный файл после создания нужноименного? ;) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 17:34 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос Тогда следующий "наезд" - почему не удаляешь сохраненный файл после создания нужноименного? ;) Потому, что я предложил возможный способ решения моей задачи, и он меня устраивал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2008, 13:43 |
|
||
|
Новая книга Excel с произвольным именем
|
|||
|---|---|---|---|
|
#18+
Сейчас я пользуюсь таким вариантом Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2008, 13:48 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=195&tid=2162445]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 341ms |

| 0 / 0 |
