Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
VBS на выполнение макроса
 
Не удается сделать описаным методом. Может можно сделать, чтобы нажималась кнопка на листе в Excel?
VBS на выполнение макроса
 
Влад, а можно пример? Для лучшего понимания.
VBS на выполнение макроса
 
JayBhagavan, при выполнении отображается ошибка: Предполагается наличие окончания инструкции, Код: 800A0401, ошибка компиляции.
Я предполагаю, что VBA код я неверно перенес.
VBS на выполнение макроса
 
JayBhagavan,
Код
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = false
ExcelApp.displayalerts = false
ExcelApp.Workbooks.Open "K:\Исходник.xls"

iLastRow = Sheets("Консолидации общий").Cells(Rows.Count, 8).End(xlUp).Row
For i = 2 To iLastRow - 1
    a = LCase(Sheets("Консолидации общий").Cells(i, 1).Value)
    b = LCase(Sheets("Консолидации общий").Cells(i, 2).Value)
    c = LCase(Sheets("Консолидации общий").Cells(i, 3).Value)
    d = LCase(Sheets("Консолидации общий").Cells(i, 4).Value)
    e = LCase(Sheets("Консолидации общий").Cells(i, 5).Value)
    f = LCase(Sheets("Консолидации общий").Cells(i, 6).Value)
    g = LCase(Sheets("Консолидации общий").Cells(i, 7).Value)
    h = LCase(Sheets("Консолидации общий").Cells(i, 8).Value)
    For j = i + 1 To iLastRow
        a1 = LCase(Sheets("Консолидации общий").Cells(j, 1).Value)
        b1 = LCase(Sheets("Консолидации общий").Cells(j, 2).Value)
        c1 = LCase(Sheets("Консолидации общий").Cells(j, 3).Value)
        d1 = LCase(Sheets("Консолидации общий").Cells(j, 4).Value)
        e1 = LCase(Sheets("Консолидации общий").Cells(j, 5).Value)
        f1 = LCase(Sheets("Консолидации общий").Cells(j, 6).Value)
        g1 = LCase(Sheets("Консолидации общий").Cells(j, 7).Value)
        h1 = LCase(Sheets("Консолидации общий").Cells(j, 8).Value)
    If a = e1 And b = f1 And c = g1 And d = h1 And e = a1 And f = b1 And g = c1 And h = d1 Then
    Cells(j, 1) = a
    Cells(j, 2) = b
    Cells(j, 3) = c
    Cells(j, 4) = d
    Cells(j, 5) = e
    Cells(j, 6) = f
    Cells(j, 7) = g
    Cells(j, 8) = h
    End If
    Next j
Next i

ExcelApp.ActiveWorkbook.Save
ExcelApp.Workbooks.Close
Set ExcelAp = Nothing


Подскажите, пожалуйста, что не так я сформировал?
VBS на выполнение макроса
 
JayBhagavan, Спасибо, а данный макрос необходимо преобразовывать?
VBS на выполнение макроса
 
Добрый день.
Возникла потребность создать VBS файл.
Данныйц фал должен открывать одну книгу, затирить в ней данные в диапазоне [A2:Hn], затем открывать другой файл копировать данные в таком же диапазоне и заливать в первую книгу.
Затем выполнить 2 макроса.
Из VBS знаю только как открыть файл игнорируя ошибок и сохранить его. Подскажите каким способом это можно реализовать.

Код
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = false
ExcelApp.displayalerts = false
ExcelApp.Workbooks.Open "Путь к файлу"
ExcelApp.ActiveWorkbook.refreshall
ExcelApp.ActiveWorkbook.Save
ExcelApp.Workbooks.Close
Set ExcelAp = Nothing
Поиск несовпадения двух строк в двух столбцах, оптимизация поиска
 
TSN, файл около 60 мб весит, кусок кода я скинул, попробуйю серез массив.
Поиск несовпадения двух строк в двух столбцах, оптимизация поиска
 
JayBhagavan, Можно попробовать, что-то я не подумал.
Поиск несовпадения двух строк в двух столбцах, оптимизация поиска
 
Добрый день.
У меня есть код, который ищет ситуацию несовпадения двух строк в двух столбцах, но он отрабатывает долго.
Можект кто сможет подсказать как оптимизнуть можно? Буду очень благодарен.
Код
Sub set_cntr()
iLastRow = Sheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To iLastRow - 1
    a = LCase(Sheets("Лист1").Cells(i, 3).Value)
    b = LCase(Sheets("Лист1").Cells(i, 4).Value)
    For j = i + 1 To iLastRow
        A1 = LCase(Sheets("Лист1").Cells(j, 3).Value)
        b1 = LCase(Sheets("Лист1").Cells(j, 4).Value)
    If b = b1 Then
        If a <> A1 Then
    Cells(j, 10) = "Не совпадает"
    Cells(i, 10) = "Не совпадает"
        End If
    End If
    Next j
    If Cells(i, 10).Value = "" Then
Cells(i, 10) = "Верно"
End If
Next i
End Sub
Сцеплять или две, или три строки
 
Все просто
Код
=A8&" "&B8&" "&C8
Изменено: eremeev23rus - 10.09.2015 10:17:43
Формирование XLS с данными
 
Нет, именно подсказать, но я уже реализовал записью макроса и его редактированием, спасибо.
Формирование XLS с данными
 
JayBhagavan, не могли бы подсказать?
Формирование XLS с данными
 
Sanja, это понятно, последний символ так получить:
Код
iLastRow = Sheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row

Мне просто кодом надо формировать файл с данными.
Формирование XLS с данными
 
Добрый день!
Подскажите, пожалуйста, каким образом можно сделать так, чтобы по значениям с одного ексель файла, диапазон A1:Dn, формировался новый файл (сохранялся) с этими данными. Знаю как сделать csv, а на xls-нет. Это необходимо сделать на уровне VBA.
Так же в ячейках значения начинаются с "0" в итоговом файле должны быть такие же.
Изменено: eremeev23rus - 09.09.2015 17:45:53
Невозможно изменить примечания привычным способом, Excel 2010, Windows 7
 
Во вложении файл делал пару сек, но хоть какойто выход) в поле ячейка вводить адрес ячейки, например Z10
Изменено: eremeev23rus - 09.09.2015 12:41:52
Невозможно изменить примечания привычным способом, Excel 2010, Windows 7
 
Сергей, У меня тоже не редактируется
Невозможно изменить примечания привычным способом, Excel 2010, Windows 7
 
alien222, можно на vba
Код
a = "Комментарий"
Range("A1").AddComment (a)

где A1-адрес ячейки
Поиск совпадений в диапазоне и поставление значения соседней от совпавшей ячейки
 
Я бы сделал так, в VBA, но только такой код сработает, если значению в первой ячейки первого столбца соответствует только одно значение в диапазоне воторого столбца
Код
Private Sub CommandButton1_Click()
iLastRow = Sheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To iLastRow - 1
    a = LCase(Sheets("Лист1").Cells(i, 1).Value)
    For j = i + 1 To iLastRow
        a1 = LCase(Sheets("Лист1").Cells(j, 2).Value)
    If a = e1 Then
    Cells(j, 4) = a1
    End If
    Next j
Next i
End Sub
Изменено: eremeev23rus - 08.09.2015 16:52:29
Посчитать ячейки соответствующие заданных критериям
 
hoz,
Цитата
JayBhagavan написал:
=ЕСЛИ(ЕЧИСЛО($G7);ВПР(ГОД(СЕГОДНЯ())-$G7;{0;"до 40 лет":40;"от 40 до 50":50;"от 50 и старше"};2;1);"")
=ЕСЛИ(ЕЧИСЛО($G7);ВПР(ГОД(СЕГОДНЯ())-$G7;{0;"до 40 лет":40;"от 40 до 50":50;"от 50 до 70":70;"от 70 и старше"};2;1);"")
Изменено: eremeev23rus - 08.09.2015 11:31:07
С нескольких строк и столбцов преобразовать в один столбец
 
The_Prist, Спасибо.
С нескольких строк и столбцов преобразовать в один столбец
 
JayBhagavan, подскажите, почему получается так, что цикл бежит, новый диапазон когда выделяется старый сбразывается, это если ячейки не подряд идут
Код
Private Sub CommandButton1_Click() 
Set cur_range = Selection 
       cur_range.Activate 
       
c = Split(cur_range.SpecialCells(xlVisible).Address, ",") 
For w = 0 To UBound(c) 
t = c(w) 
d = Range(t).Resize(, 1).Address 
Range(d).Select 
Debug.Print d 
Next w 
End Sub
Изменено: eremeev23rus - 08.09.2015 02:25:05
С нескольких строк и столбцов преобразовать в один столбец
 
Добрый день.
Возникла потребность преобразование в VBA диапазона выделеных ячеек. Например с K2:L42577 заменить на K2:K42577.
То есть чтобы с нескольких строк и столбцов оставался один столбец со всеми выделеными строками.
Подайте идею как это можно сделать.
Преобразовение диапазона в список
 
Если я выбираю диапазон: Строка 1,2,3,10,20, то у меня попадет диапазон: $A$1:$A$3,$A$10,$A$20 Далее разобьет ког на массив, разбивка до запятой и получится:
С(0)= $A$1:$A$3
С(1)= $A$10
С(2)=$A$20
Затем у меня режет адрес строк, но это происходит некоректно, потому что встречается двоеточие.
Преобразовение диапазона в список
 
Добрый день!
Подскажите, пожалуйста, как преобразовать диапазон выбранных ячеек.
Ячейки я получаю таким способом:
 
Код
      Set cur_range = Selection 
        cur_range.Activate 
If InStr(cur_range.SpecialCells(xlVisible).Address, ",") <> 0 Then 
C = Split(cur_range.SpecialCells(xlVisible).Address, ",")

То есть разбиваю в массив ячейки через запятую которые, но если есть диапазон ":", то он считае как одна ячейка, поэтому я хочу в начале, если есть такой случай преобразовывать в список через запятую, При этом, разворот должне происходить если выбран диапазон относительно столбца, а не строки.
Страницы: 1
Наверх