|
|
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Доброго времени! Интересует вопрос, как этот код оптимизировать под Excel (Office for Mac 2011)? Смысл кода. Кнопка на форме открывает диалоговое окно, в нём выбирается нужный файл, при нажатии "открыть", по предустановленному шаблону создаётся папка, в неё копируется выбранный файл, диалоговое окно закрывается. Этот код нормально работает на Windows (исходно открывает диск С). На маке при нажатии ничего не происходит. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Подскажите, что нужно дописать, чтобы работало как на винде, так и на маке. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 00:10 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Dark VictorПодскажите, что нужно дописать,не дописать, а убрать On Error Resume Next ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 00:20 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Так и чего? В винде он будет выдавать ошибку, если я буду добавлять ещё файлы в эту же папку - нажимать на кнопку (напишет, что объект уже существует). Можно, конечно, прописать, чтобы каждый раз при нажатии на кнопку он проверял наличие соответствующих директорий и при их отсутствии, создавал, но как это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 01:35 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Или, имеется ввиду, убрать из функции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 01:38 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Так и того, что надо увидеть ошибку, а не игнорировать ее для начала и говорить "ничего не происходит" Я не спец по маку, возможно, там надо использовать прямой слеш в пути. Что на нем выдает .Path? А проверять наличие папки можно функцией Dir ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 01:39 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Я не программер, если бы всё знал и умел, не рылся бы по форумам в поисках истины. До написанного выше своей головой дошел, изучая книжки и интернет. Будьте немного снисходительны. Вторая проблема - отсутствие мака в настоящий момент. Сам не поклонник и не специалист в яблочных делах. Лады. Доберусь до него, продолжим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 01:49 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Значит, пишет. Ошибка выполнения "438". Объект не поддерживает это свойство или метод. Выделяет строчку Код: vbnet 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 21:21 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Ещё выделяет строку Код: vbnet 1. Пишет: Ошибка выполнения "75". Ошибка доступа к пути или файлу. Поменял слэши с '\' на '/'. По-прежнему эта ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 21:31 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Dark VictorЗначит, пишет. Ошибка выполнения "438". Объект не поддерживает это свойство или метод.значит не поддерживает. Можно попробовать вместо этого GetOpenFileName Dark Victorишет: Ошибка выполнения "75". Ошибка доступа к пути или файлу. Поменял слэши с '\' на '/'. По-прежнему эта ошибка.так чему St-то равно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 21:50 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
St = ActiveWorkbook.Path В начале кода написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 22:01 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Dark VictorSt = ActiveWorkbook.Path В начале кода написано. - Скажи чабан, а сколько овцы съедают травы в год? - А какие, чёрные овцы или белые овцы? - Ну к примеру белые? - Нууу,- чешет в затылке чабан,- белые 20 кг., - А чёрные? - А чёрные, тоже 20 кг. - А сколько шерсти дают овцы? - А какие, чёрные или белые? - Чёрные к примеру. - Чёрные 20 кг. - А белые? - И белые 20 кг. - Слушай чабан, а чё ты спрашиваешь белые или чёрные!? - Ну, дак белые - то овцы мои! - А чёрные? - А чёрные тоже мои! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 22:44 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Shocker.ProDark VictorSt = ActiveWorkbook.Path В начале кода написано. Спросил, чему равен .Path? Ответа нет. Спросил, чему равен St. Оказывается .Path. Как бы так ответ-то получить ( Собственно, вопрос был так чему St-то равно? Я написал, чему. Какой вопрос, такой ответ. Для ясности, можно было просто спросить, путь до книги. Path в данном случае (на маке) равен "/Users/sdok/Documents/base/base.xlsm" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 23:05 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Dark VictorPath в данном случае (на маке) равен "/Users/sdok/Documents/base/base.xlsm"ага, именно это я и хотел понять, значит слеши все-таки прямые. Нут так и что получается, вы пытаетесь создать папку "/Users/sdok/Documents/base/base.xlsm/MRI_CT_Rtg/" Думаю, это не получается, как минимум из-за отсутствия папки /Users/sdok/Documents/base/base.xlsm/ .Path на винде не содержит имени файла. Стало быть с этим на маке как-то придется бороться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 23:12 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Dark VictorСобственно, вопрос был так чему St-то равно? Я написал, чему. Какой вопрос, такой ответ.я не слепой - я вижу это в коде. С тем же успехом можно было бы ответить: "значению типа String". Это тоже было бы правильным ответом, однако это не приближает нас к решению вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 23:14 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Shocker.ProDark VictorPath в данном случае (на маке) равен "/Users/sdok/Documents/base/base.xlsm"ага, именно это я и хотел понять, значит слеши все-таки прямые. Не совсем правильно указал. base.xlsm это уже сама книга. Путь в директорию, где она лежит "/Users/sdok/Documents/base/" В этой же директории будет создаваться папка "MRI_CT_Rtg". На винде всё без проблем работает и создаёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 23:18 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro+ Dark VictorСобственно, вопрос был пропущено... Я написал, чему. Какой вопрос, такой ответ. С тем же успехом можно было бы ответить: "значению типа String". Это тоже было бы правильным ответом, однако это не приближает нас к решению вопроса. Как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 23:19 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Dark VictorДля ясности, можно было просто спросить, путь до книги.Dark VictorНе совсем правильно указал. base.xlsm это уже сама книга. Путь в директорию, где она лежит "/Users/sdok/Documents/base/" В этой же директории будет создаваться папка "MRI_CT_Rtg". На винде всё без проблем работает и создаёт.Ну так потому я и не спрашивал путь к книге, а спрашивал чему равна переменная St и ожидал ответа именно на этот вопрос, потому что важно именно состояние переменной, а не путь к книге. В таком случае, наиболее вероятна проблема с правами - недостаточно прав, чтобы создать эту папку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 23:27 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Возможно. Мысли были про это. Можно как-то из кода расширить права, или это для всего приложения нужно делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 23:30 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Dark VictorВозможно. Мысли были про это. Можно как-то из кода расширить права, или это для всего приложения нужно делать?нет, из кода, конечно, нельзя, иначе зачем они вообще существуют. Нужно дать их пользователю, от имени которого выполняется эксель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 23:38 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Переписал кнопку через GetOpenFilename Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Снова на винде работает, на маке выдвёт новую ошибку: Ошибка выполнения "1004". Ошибка метода "GetOpenFilename" объекта "_Application". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 23:46 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Капризная, видать, эта штука - офис для мака, особенно в части совместимости с неродной файловой системой. Надо курить хелпы по этим командам, именно хелп маковского офиса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 23:55 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Кстати, боюсь "Scripting.FileSystemObject" там тоже неоткуда взяться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 23:57 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Мне ещё придётся как-то совмещать, чтобы оно работало на винде и маке. Уже были мысли предложить владельцу поставить винду второй системой. Ещё день-другой помучаюсь, наверно так и сделаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2012, 00:06 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Всем спасибо! Разобрался самостоятельно. Переписал кнопку. Теперь работает как на винде, так и на маке. Может кому пригодится. кнопка Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. По поводу создания папок в винде с SHCreateDirectoryEx заморачиваться не стал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2012, 22:57 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Dark Victor, Отлично, спасибо, что отписался Так а что на маке выдает Application.PathSeparator и ActiveWorkbook.Path ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2012, 23:21 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Shocker.ProDark Victor, Отлично, спасибо, что отписался Так а что на маке выдает Application.PathSeparator и ActiveWorkbook.Path ? В терминах не особо силен. Я так понимаю, Application.PathSeparator - это то, что выдаёт Application.GetOpenFilename? Если да, то Application.PathSeparator = Macintosh HD:Users:sdok:Desktop:filename.ext при этом файл 'filename.ext' находится на рабстоле, а ActiveWorkbook.Path = Macintosh HD:Users:названиеучётнойзаписи:папкагдележитфайл В моём случае книга на рабочем столе: Macintosh HD:Users:sdok:Desktop Помимо того, что всё по-другому, на маке мне не понравилась организация рабочего пространства. Там нет, как в винде, раскрывания на весь экран с "фиксацией" окна к краям. В редакторе куча открытых окошек, каждое норовит залезть на другое. При каждом новом запуске одно за другое прячутся, что приходится их вылавливать, прежде, чем нажать кнопку "заветного зеленого плюса" для растяжения на свободное пространство экрана. Ещё у него проблемы с кириллицей в пути к фалу, созданного при помощи VBA. Пришлось ещё транслитерацию прописывать. Хотя, может это проблема конкретного образца. Отчего многие от мака балдеют?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 01:29 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Dark VictorВ терминах не особо силен. Я так понимаю, Application.PathSeparator - это то, что выдаёт Application.GetOpenFilename?Нет, Application.PathSeparator - это то, что выдает Application.PathSeparator. Dark Victor ActiveWorkbook.Path = Macintosh HD:Users:названиеучётнойзаписи:папкагдележитфайлDark VictorPath в данном случае (на маке) равен "/Users/sdok/Documents/base/base.xlsm"Вот ведь, блин!!! Ну зачем голову было морочить? Спрашивал несколько раз, чему равен Path? в итоге настоящий ответ получил только сейчас посли долгих препираний. Зачем вы вообще консультировались на форуме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 10:01 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, за тем, что не знал как на маке это происходит. Всё что знал по VBA до этого и пробовал - было бесполезным. Были мысли, что Гуру помогут. Проведя трое суток за компом узнал что как и куда. Повторюсь, я не программист (образование даже не техническое), но при необходимости, быстро учусь. По поводу Path в данном случае (на маке) равен "/Users/sdok/Documents/base/base.xlsm" - это в свойствах файла на маке оно так значится. Вытащить Path, известным мне способом на тот момент, не получалось, выдавал какую-то ошибку. Нет, Application.PathSeparator - это то, что выдает Application.PathSeparator. Если это ещё актуально, подскажите, куда прикрутить, чтобы вывести в MsgBox, нет сил уже в хэлпах копаться. Да и мак отдал уже. Один хрен, всё с ним нет так. После простого открытия на нем редактора VBA (не редактируя особо ничего и сохранения), любой русский превращается в китайца. Ниже - форма, точнее, то, во что она превращается после мака. Если даже не открывать, при простом запуске книги выбивает любые кириллические символы в коде (например, при создании папки), причём, как-то избирательно, часть слова остается нетронутой. Созданный путь, соответственно, в таком случае найти не может. Пришлось ещё транслит прописывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 02:21 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Dark VictorНет, Application.PathSeparator - это то, что выдает Application.PathSeparator. Если это ещё актуально, подскажите, куда прикрутить, чтобы вывести в MsgBox, нет сил уже в хэлпах копаться. Да и мак отдал уже.Вы будете смеяться: Код: vbnet 1. можно просто написать это в Immediate Window (которое вызывается по Ctrl+G) и нажать Enter. А лучше написать там просто Код: vbnet 1. и нажать Enter. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 10:36 |
|
||
|
Excel (Office for Mac)
|
|||
|---|---|---|---|
|
#18+
Не работает там можно просто написать это в Immediate Window (которое вызывается по Ctrl+G) и нажать Enter. А лучше написать там простоНи Ctrl+G, ни Command+G... MsgBox Application.PathSeparator= : что подтверждает предыдущие посты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 23:25 |
|
||
|
|

start [/forum/topic.php?all=1&fid=61&tid=2175931]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
187ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 498ms |

| 0 / 0 |
