Вопрос № 97843: Уважаемые экперты!
Есть задача: при помощи команды ndir выводится информация о домашних каталогах сетевых пользователей - нужна ин-фо только о квоте на каталог, занятом и свободном месте каталога....т.е. команда выглядит так :
"ndir пут...Вопрос № 97844: Добрый день!
подскажите, пожалуйста, как в Экселе создать такой макрос, который с одного листа, переносит данные на другой лист, с учётом, что номера ячеек постоянные, а вот данные в них разные.
например:
данные из ячеек А3,А4, А5 на Лис...
Вопрос № 97.843
Уважаемые экперты!
Есть задача: при помощи команды ndir выводится информация о домашних каталогах сетевых пользователей - нужна ин-фо только о квоте на каталог, занятом и свободном месте каталога....т.е. команда выглядит так :
"ndir путь к каталогу SPA DO > C:1.txt"
Либо, если запускать непосредственно из каталога, то:
"ndir SPA DO > C:1.txt"
.....(это для вариаций с программой, вдруг вы предложите 2 разных решения...)
Но команда выводит инфу только по 1-му каталогу, т.е. на каждого юзера нужно запустить команду, вывести в файл инфу и потом это все слить в 1 файл(желательно в exсel), а пользователей более тысячи...
Собственно вопрос:-)
Как на VB автоматизировать этот процесс?.....можно код, если есть что-то подобное:-)
Буду очень благодарна за ответ...если что-то непонятно, пишите уточню...
Приложение:
Отправлен: 09.08.2007, 14:06
Вопрос задала: Iris (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Alexander N. Monastyrsky
Здравствуйте, Iris!
Для запуска приложения можно использовать Shell
Синатксис :
Public Function Shell( _
ByVal Pathname As String, _
Optional ByVal Style As AppWinstyle="AppWinStyle.MinimizedFocus," _
Optional ByVal Wait As Boolean = False, _
Optional ByVal Timeout As Integer = -1 _
) As Integer
Запускает исполняемую программу и возвращает целочисленное значение, содержащее идентификатор процесса программы, если она все еще выполняется.
Тоесть ... (в приложении)
Взято с MSDN . :)
Учтите, что ndir - это не стандартное приложение Винды, соответственно, оно должно находиться в Win/System32 или указать полный путь к этому приложению.
Параметры
Pathname
Обязательный. String. Имя исполняемого файла со всеми необходимыми аргументами. Pathname может также содержать имя диска и путь.
Style
Необязательный. AppWinStyle. Значение, выбираемое из перечисления AppWinStyle, соответствующее стилю окна, в котором запускается программа. Если параметр Style опущен, Shell использует значение AppWinStyle.MinimizedFocus, запускающее программу в свернутом окне с фокусом.
Аргумент Style может принимать одно из следующих значений:
Значение Описание
AppWinStyle.Hide Окно скрыто, и фокус передан скрытому окну.
AppWinStyle.NormalFocus Окно получает фокус и отображается в своих предыдущих размере и позиции.
AppWinStyle.MinimizedFocus Окно отображается как значок и имеет фокус.
AppWinStyle.MaximizedFocus Окно получает фокус и развернуто во весь экран.
AppWinStyle.NormalNoFocus Окно восстанавливает свои последние размер и позицию. Активное в данный момент окно остается активным.
AppWinStyle.MinimizedNoFocus Окно отображается в виде значка в панели задач. Активное в данный момент окно остается активным.
Wait
Необязательный. Boolean. Значение, определяющее, должна ли функция Shell ожидать завершения выполнения программы. Если параметр Wait опущен, Shell использует False.
Timeout
Необязательный. Integer. Длительность в миллисекундах интервала, в течение которого ожидается завершение выполнения программы, если Wait равно True. Если параметр Timeout опущен, Shell использует-1, то есть таймаут не используется и Shell ожидает завершения выполнения программы. Таким образом, если вы опустите Timeout или установите его в -1, существует возможность, что Shell никогда не передаст управления вашей программе.
Приложение:
--------- Страшен Русский сервис, бессмысленный и беспощадный...
Ответ отправил: Alexander N. Monastyrsky (статус: 1-ый класс)
Ответ отправлен: 10.08.2007, 11:57
Вопрос № 97.844
Добрый день!
подскажите, пожалуйста, как в Экселе создать такой макрос, который с одного листа, переносит данные на другой лист, с учётом, что номера ячеек постоянные, а вот данные в них разные.
например:
данные из ячеек А3,А4, А5 на Листе1 надо перенести на Лист2
в ячейки С5, С6, С7.
данные в ячейках А3,А4,А5 - будут каждый раз разные.
названия листов, тоже будут меняться....
заранее благодарна!
Отвечает: Alexander N. Monastyrsky
Здравствуйте, Шубейко Маргарита!
Вот ваше решение вопроса.
Вообще-то в Экселе меню "Сервис" - "Макросы" - "Начать запись"
Делаете то, что требуется и автоматически создается макрос.
Приложение:
--------- Страшен Русский сервис, бессмысленный и беспощадный...
Ответ отправил: Alexander N. Monastyrsky (статус: 1-ый класс)
Ответ отправлен: 09.08.2007, 14:58 Оценка за ответ: 5
Отвечает: Черников Игорь Владимирович
Здравствуйте, Маргариточка!
'Предисловие:Cells(i, j)- i-это порядковый номер строки в которой находится ячейка, j-порядковый номер столбца в котором находится ячейка
'т.е. Cells(1, 1) - это ячейка А1, а Cells(2, 3) - это ячейка С2 (2-это 2, а 3-это С).
'это для твоего примера из Лист1 А3-А5 в Лист2 С5-С7
For i = 3 To 5
Worksheets("Лист2").Cells(i + 2, 3) = Worksheets("Лист1").Cells(i, 1)
Next i
другой пример:
'а это для нескольких строк и столбцов(лист1 А3-В10 -> Лист2 С5-D12)
For i = 3 To 10
For j = 1 To 2
Worksheets("Лист2").Cells(i + 2, j + 2) = Worksheets("Лист1").Cells(i, j)
Next j
Next i
и ещё один:
' Если тебе ежедневно необходимо сохранять данные в разные листы, то можно создавать лист, в имени которого будет стоять дата, тогда код будет таким:
Sheets.Add
ActiveSheet.Name = Mid(Date, 1, 10) 'Если вместо 10 поставить 5, то год писаться не будет (и в третьей строке ниже, тоже)
For i = 3 To 10
For j = 1 To 2
Worksheets(Mid(Date, 1, 10)).Cells(i + 2, j + 2) = Worksheets("Лист1").Cells(i, j)
Next j
Next i
--------- От каждого по способностям, каждому по труду
Ответ отправил: Черников Игорь Владимирович (статус: 3-ий класс)
Ответ отправлен: 09.08.2007, 18:26 Оценка за ответ: 5 Комментарий оценки: ОГРОМНЕЙШЕЕ СПАСИБО!!!