Страницы: 1
RSS
А чему равен C:\Documents and Settings\Admin, чтобы макрос работал на всех компах корректно
 
в этом коде:

Sub Сохранить_на_рабочий_стол()
q = InputBox("Имя?")
If q = "" Then Exit Sub
ActiveWorkbook.SaveAs CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\" & q & ".xls", FileFormat:=xlNormal
ActiveWorkbook.Close
If Workbooks.Count = 0 Then Application.Quit
End Sub

Рабочий стол = CreateObject("WScript.Shell").SpecialFolders("Desktop")

А чему равен C:\Documents and Settings\Admin
?
 
Код
Sub Сохранить_на_рабочий_стол()
q = InputBox("Имя?" ;) 
If q = "" Then Exit Sub
ActiveWorkbook.SaveAs CreateObject("WScript.Shell" ;) .SpecialFolders("Desktop" ;)  & "\" & q & ".xls", FileFormat:=xlNormal
ActiveWorkbook.Close
If Workbooks.Count = 0 Then Application.Quit
End Sub


("WScript.Shell"  ; )  .SpecialFolders - видите, появились лишние точка с запятой, при попытке оформления текста ввиде кода
Изменено: faq - 24.12.2012 17:36:10
 
Чтобы макрос работал корректно, лучше программно создать свою папку в корне диска, затем проверять ее наличие и сохранять в нее файлы.
зы:
у меня такой папки  нет :(  
Цитата
C:\Documents and Settings\Admin
Изменено: R Dmitry - 24.12.2012 17:40:43
Спасибо
 
Цитата
R Dmitry пишет:
Чтобы макрос работал корректно, лучше программно создать свою папку в корне диска, затем проверять ее наличие и сохранять в нее файлы.
зы:
у меня такой папки нет :(
может я неправильно изложил вопрос...

есть код - его задача сохранить копию активного файла на рабочий стол.

у меня рабочий стол  - C:\Documents and Settings\Admin\Рабочий стол

у Саши он - C:\Documents and Settings\Sasha\Desktop

у Иры он - C:\Documents and Settings\User\Рабочий стол

поэтому макрос работал у меня но не работал у Саши и у Иры
а CreateObject("WScript.Shell").SpecialFolders("Desktop") работает у Всех

вопрос: А чему равен C:\Documents and Settings\Admin
?
 
Запустите такой макрос:
Код
Sub test()
    For i = 1 To 33
        Debug.Print i, Environ(i)
    Next
End Sub


Увидите в окне Immediate:
Цитата

...
30           USERNAME=Игорь
31           USERPROFILE=C:\Documents and Settings\Admin
32           WecVersionForRosebud.73C=4
33           windir=C:\WINDOWS

Отсюда делаем вывод, что нам нужно Environ("USERPROFILE"):
Код
Sub test2()
    MsgBox Environ(31)
    ' или
    MsgBox Environ("USERPROFILE")
End Sub
 
Environ("USERPROFILE")
 
Игорь привет, admin это частный случай
в моем случае:
Код
USERPROFILE=C:\Documents and Settings\Дмитрий

---------------
поэтому я предпочитаю создавать свою папку.
Изменено: R Dmitry - 24.12.2012 17:56:53
Спасибо
 
когда-то именно Игорь подсказал CreateObject("WScript.Shell").SpecialFolders("Desktop")

очень рад что моя скромная тема привлекла внимание сразу двух гигантеров (Ночь в музее) ЭКСЕЛ'я

Владимир, Игорь - спасибо Вам огромное!
 
Код
Sub test()
i = 1
Do
lrow = Cells(Rows.Count, "A").End(xlUp).Offset(1).Row
x = Environ(i)
Cells(lrow, 1) = x
i = i + 1
Loop Until x = ""
End Sub
MyExcelWorld One World One Dream!
Microsoft MVP Excel from 2012
Aydin Aliyev
Страницы: 1
Читают тему
Наверх