Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » VBS: Excel: Считать ячейку таблицы и вывести информацию.

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Spy686



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста с кодом.
 
Условия:
- Есть файл excel.xls
- В этой же папке лежит скрипт .vbs
 
Код:
1. Извлечить ячейку F3 из .xls
2. скопировать в .txt (или как в js alert, если есть)

Всего записей: 193 | Зарегистр. 17-12-2010 | Отправлено: 01:29 09-10-2014
Spy686



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Часть кода есть:
 

Код:
 
' Извлекаю путь данного vbs
Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFile(Wscript.ScriptFullName)
path = FSO.GetParentFolderName(F)
 
' Путь файла xls
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open (path+"\VK_Stat.xls")
 
' Заполнена ли колонка Status New
StatProv = objExcel.Cells(3, 10).Value
 
WScript.Echo StatProv
 

 
Как подсчитать количество не пустых строк?
 
Добавлено:
Нашел подсчет строк:
 

Код:
 
' Извлекаю путь данного vbs
Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFile(Wscript.ScriptFullName)
path = FSO.GetParentFolderName(F)
 
' Путь файла xls
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open (path+"\VK_Stat.xls")
 
' Количество аккаунтов
Accs = objExcel.ActiveSheet.UsedRange.Row + objExcel.ActiveSheet.UsedRange.Rows.Count - 3
 
' Заполнена ли колонка Status New
StatProv = objExcel.Cells(3, 10).Value
 
objExcel.Quit
 

 
Теперь необходимо скопировать ячейки одной колонки в диапазоне I3:Accs в H3:Accs

Всего записей: 193 | Зарегистр. 17-12-2010 | Отправлено: 22:25 09-10-2014
Spy686



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Теперь необходимо скопировать ячейки одной колонки в диапазоне I3:Accs в H3:Accs
Готово:
 

Код:
 
' Извлекаю путь данного vbs
Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFile(Wscript.ScriptFullName)
path = FSO.GetParentFolderName(F)
 
' Путь файла xls
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open (path+"\VK_Stat.xls")
 
' Количество аккаунтов
Accs = objExcel.ActiveSheet.UsedRange.Row + objExcel.ActiveSheet.UsedRange.Rows.Count - 3
 
' Копирование колонка Status New в Status Old
StatProv = objExcel.Cells(3, 9).Value ' первое значение в Status New
i = 3
Do While i < Accs + 3 And StatProv <> ("")
    objExcel.Cells(i, 8).Value = objExcel.Cells(i, 9).Value                 ' копирование
    objExcel.Cells(i, 9).Value = ""                                            ' очистка колонки         Status New
    i = i+1
  Loop
 
 
 
 
 
 
' Извлекаю путь данного vbs
 
 
Wscript.Echo "CN: " & objExcel.Cells(3, 10).Value
 
 
WScript.Echo objExcel.Cells(2, 10).Value
 
 
objExcel.ActiveWorkbook.Save
objExcel.Quit
 

 
Добавлено:
Теперь get запрос и обработка ответа

Всего записей: 193 | Зарегистр. 17-12-2010 | Отправлено: 23:57 10-10-2014
Spy686



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Статус get'ится и проставляется в excel:
 

Код:
 
' Извлекаю путь данного vbs
Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFile(Wscript.ScriptFullName)
path = FSO.GetParentFolderName(F)
 
' Путь файла xls
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open (path+"\VK_Stat.xls")
 
' Количество аккаунтов
Accs = objExcel.ActiveSheet.UsedRange.Row + objExcel.ActiveSheet.UsedRange.Rows.Count - 3
 
' Копирование колонка Status New в Status Old
StatProv = objExcel.Cells(3, 9).Value ' первое значение в Status New
i = 3
Do While i < Accs + 3 And StatProv <> ("")
    objExcel.Cells(i, 8).Value = objExcel.Cells(i, 9).Value                 ' копирование
    objExcel.Cells(i, 9).Value = ""                                            ' очистка колонки         Status New
    i = i+1
Loop
 
' Проверка статуса vk - аккаунта и запись в Status New
i = 3
Do While i < Accs + 3 And objExcel.Cells(i, 4).Value <> ("")                ' пока значение в url vk - аккаунта не пусто
    Dim o
    Set o = CreateObject("MSXML2.XMLHTTP")
    o.open "GET", objExcel.Cells(i, 4), False
    o.send
' запись статуса vk - аккаунта  
    if InStr(1,o.responseText,"заблокировать",1) <> 0 Then
            objExcel.Cells(i, 9).Value = "Блок"
    else
        if InStr(1,o.responseText,"заморозили",1) <> 0 Then
            objExcel.Cells(i, 9).Value = "Замор"
        else
            objExcel.Cells(i, 9).Value = "Ok"
        end if
    end if
    i = i+1
Loop
 
 
 
 
 
 
' Извлекаю путь данного vbs
WScript.Echo objExcel.Cells(2, 10).Value
 
 
objExcel.ActiveWorkbook.Save
objExcel.Quit
 

Всего записей: 193 | Зарегистр. 17-12-2010 | Отправлено: 12:21 11-10-2014
protoror



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сам дал задание, сам сделал, сам прокомментировал. Молодец, теперь попробуй делать самостоятельно при помощи гугла и без лишнего постинга)

Всего записей: 494 | Зарегистр. 23-11-2009 | Отправлено: 11:46 12-10-2014
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » VBS: Excel: Считать ячейку таблицы и вывести информацию.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru