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

Страницы: 1 2 След.
ВПР по двум критериям
 
Спасибо
ВПР по двум критериям
 
замечательный вариант без формул массива (ctrl+shift+enter)  
но данные в таблице должны быть отсортированы по столбцу "Дата" - в формуле "$B$16:$B$30". в противном случае не все данные будут выведены.  
может кто подскажет вариант "ВПР по 2м критериям" в виде формулы "не массива", которая работоспособна с не сортированными списками  
Спасибо.
VBA. Непонятная причина ошибки. Нужна помощь.
 
{quote}{login=Ластик}{date=27.01.2012 03:10}{thema=}{post}может так?  
 
Sub qwe()  
   Workbooks.Add  
   ТекКнига = ActiveWorkbook.Name  
   FileASN = "D:\"  
   ИмяФайла = "тест.xls"  
   ИтИмяФ = FileASN & ИмяФайла  
   Workbooks(ТекКнига).SaveAs Filename:=ИтИмяФ, FileFormat:=xlExcel8  
   Workbooks(ИмяФайла).Close  
End Sub  
 
 
Я не уверен, что мой пример, который я предложил выше сработает, нужно тестировать. Но копать вам нужно в сторону наличия расширения файла в название книги{/post}{/quote}  
 
 
Добавил расширение, ошибка исчезла  
Огромное спасибо
VBA. Непонятная причина ошибки. Нужна помощь.
 
Здравствуйте...  
Написал макрос (Office 2007). На большинстве компьютеров работает, а на некоторых компьютерах отказывается работать.  
Выдержка кода VBA:    
Sub qwe()  
Workbooks.Add  
ТекКнига = ActiveWorkbook.Name  
FileASN = "d:\"  
ИмяФайла = "тест"  
ИтИмяФ = FileASN + ИмяФайла  
       Workbooks(ТекКнига).SaveAs Filename:=ИтИмяФ, FileFormat:=xlExcel8  
       Workbooks(ИмяФайла).Close  
End Sub  
 
Характер ошибки:  
После создания и сохранения созданного файла выдает сообщение об ошибке: Run-time error "9". Subscript out of range.  
Прошу оказать помощь и сообщить решение проблемы  
Спасибо.
VBA. Копирование из листа EXCEL. Ошибка Run-time error 1004
 
{quote}{login=слэн}{date=22.11.2011 09:13}{thema=}{post}1 где тут копирование в    
 
with Workbooks(ИмяТекКниги).Worksheets(1)  
lLastRow = .Cells(Rows.Count, 1).End(xlUp).Row  
Set rrr = .Range(.Cells(1, 1), .Cells(lLastRow, 13))  
End with{/post}{/quote}  
 
Спасибо, заработало
VBA. Копирование из листа EXCEL. Ошибка Run-time error 1004
 
Доброе утро.  
Тестируя разработку наткнулся на след. проблему.  
нижеуказанный код успешно копирует данные из листа в массив, если лист с исходными данными является активным. Если в данной книге является активными другой лист, тогда возникает ошибка: Run-time error 1004. Aplicatin - defined or object - defined error.  
Dim rrr As Range  
Sub List()  
ИмяТекКниги = ActiveWorkbook.Name  
       lLastRow = Workbooks(ИмяТекКниги).Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row  
       Set rrr = Workbooks(ИмяТекКниги).Worksheets(1).Range(Cells(1, 1), Cells(lLastRow, 13))  
End Sub  
Помогите решить проблему.
VBA. Формирование списка уникальных значений и их сортировка.
 
{quote}{login=GIG_ant}{date=21.11.2011 03:51}{thema=}{post}Вот вариант практически весь записанный макрорекордером. см файл{/post}{/quote}  
 
Огромное спасибо.
VBA. Формирование списка уникальных значений и их сортировка.
 
Добрый день.  
Прошу оказать помощь в реализации на VBA описанной ниже обработки:  
1. Имеем список повторяющихся номеров заказов.  
2. Необходимо сформировать список уникальных номеров заказов и его отсортировать по возрастанию.  
В итоге должен получиться массив с уникальными, отсортированными номерами заказов.  
Прикрепил файл в котором из данных листа EXCEL формируется исходный массив.  
Спасибо.
VBA. Вставить значение в первую пустую ячейку столбца.
 
{quote}{login=nerv}{date=26.10.2011 09:20}{thema=}{post}с циклом по массиву  
 
Sub io()  
Dim v, x&, i&  
v = Columns(1).Value  
For i = 1 To UBound(v)  
   If v(i, 1) = "" Then x = x + 1: If x = 2 Then Exit For  
Next  
MsgBox i  
End Sub{/post}{/quote}  
 
Всем спасибо
VBA. Вставить значение в первую пустую ячейку столбца.
 
{quote}{login=Юрий М}{date=25.10.2011 06:01}{thema=}{post}Я про первый файл. Это ячейка А5 или А14? Я уже запутался о чём разговор.{/post}{/quote}  
 
В первом примере это ячейка А5
VBA. Вставить значение в первую пустую ячейку столбца.
 
{quote}{login=Юрий М}{date=25.10.2011 05:56}{thema=}{post}Alexstt, на Вашем примере - вторая - это какая ячейка?{/post}{/quote}  
Прикрепил пример.  
2я пустая ячейка имеет порядковый номер =4
VBA. Вставить значение в первую пустую ячейку столбца.
 
{quote}{login=Казанский}{date=25.10.2011 05:41}{thema=}{post}Set c = Columns(1).Find(Empty, Cells(Rows.Count, 1), xlValues, xlWhole) 'первая пустая  
Set c = Columns(1).FindNext© 'вторая пустая  
b = c.Row{/post}{/quote}  
 
к сожалению ваш пример не работает
VBA. Вставить значение в первую пустую ячейку столбца.
 
{quote}{login=Юрий М}{date=25.10.2011 05:34}{thema=}{post}У Вас ведь уже известна первая?  
b = Columns(1).Find(Empty, Cells(Rows.Count, 1), xlValues, xlWhole).Row  
Кто мешает записать так:  
b = Columns(1).Find(Empty, Cells(Rows.Count, 1), xlValues, xlWhole).Row + 1  
Это и будет вторая. Вопрос как стоял - "как к примеру переменной "В" присвоить значение = номера строки в которой находится первая пустая ячейка"...{/post}{/quote}  
нужен номер 2й пустой ячейки.
VBA. Вставить значение в первую пустую ячейку столбца.
 
{quote}{login=Юрий М}{date=25.10.2011 05:26}{thema=}{post}Первая пустая +1{/post}{/quote}  
Это как?  
Если номер первой пустой ячейки =1, номер второй пустой ячейки = 5, 1+1 <> 5
VBA. Вставить значение в первую пустую ячейку столбца.
 
{quote}{login=Alexstt}{date=21.10.2011 04:34}{thema=Re: }{post}{quote}{login=Казанский}{date=21.10.2011 04:23}{thema=}{post}Другим способом  
 
b = Columns(1).Find(Empty, Cells(Rows.Count, 1), xlValues, xlWhole).Row{/post}{/quote}  
 
спасибо{/post}{/quote}  
 
подскажите, как к переменной "В" присвоить значение = номеру строки в которой находится ВТОРАЯ пустая ячейка.
VBA. Вставить значение в первую пустую ячейку столбца.
 
{quote}{login=Казанский}{date=21.10.2011 04:23}{thema=}{post}Другим способом  
 
b = Columns(1).Find(Empty, Cells(Rows.Count, 1), xlValues, xlWhole).Row{/post}{/quote}  
 
спасибо
VBA. Вставить значение в первую пустую ячейку столбца.
 
{quote}{login=Казанский}{date=21.10.2011 03:37}{thema=}{post}On Error Resume Next  
Columns(1).SpecialCells(xlCellTypeBlanks)(1) = "11"  
If Err Then Cells(Rows.Count, 1).End(xlUp).Offset(1) = "11"  
Err.Clear{/post}{/quote}  
здорово, работает.  
Но возникла след. проблема..  
подскажите, как к примеру переменной "В" присвоить значение = номера строки в которой находится первая пустая ячейка.
VBA. Вставить значение в первую пустую ячейку столбца.
 
Помогите написать код VBA, с пом. которого можно вставить значение в первую пустую ячейку столбца.  
Нижеуказанный код работает не так как нужно.  
Sub ssd()  
Cells(Rows.Count, 1).End(xlUp).Offset(1) = "11"  
End Sub  
 
Пример прикреплен
VBA, Работа с массивами. часть 2
 
{quote}{login=nerv}{date=17.10.2011 10:29}{thema=}{post}http://www.planetaexcel.ru/forum.php?thread_id=31716&page_forum=4&allnum_forum=119  
третий пост снизу{/post}{/quote}  
Видел, как указать номер столбца в котором нужно искать?  
(протестировал на рабочем массиве - 20 столбцов и 30тыс строк, пока дойдет до нужного столбца проходит несколько секунд)
VBA, Работа с массивами. часть 2
 
{quote}{login=Alexstt}{date=17.10.2011 10:27}{thema=VBA, Работа с массивами. .{/post}{/quote}  
 
забыл прикрепить пример
VBA, Работа с массивами. часть 2
 
Прошу помощи....  
1. Вопрос  
Ищу номер записи в массиве, значение которого равно переменной "pozz"  
Столкнулся с проблемой, когда pozz = значению, которого нет в массиве, возникает ошибка  
Пример прикрепил. Как можно доработать код?  
Dim d(1 To 4) As String  
Dim r As String  
Sub SOGL_CEN()  
d(1) = "11"  
d(2) = "33"  
d(3) = "44"  
d(4) = "55"  
pozz = "asd44"  
r = Application.Match(pozz, d, 0)  
MsgBox r  
End Sub  
2 Вопрос.  
Есть ли в VBA формулы, которые позволят работать с двухмерным массивом по аналогии с функцией ВПР?  
Т.е. если значение переменной равно значению строки 1го столбца массива, тогда "выдается" значение той же строки но другого столбца.
VBA массив и типы переменных.
 
{quote}{login=nerv}{date=14.10.2011 05:33}{thema=}{post}Hugo, думаю, нет.{/post}{/quote}  
точно нет
VBA массив и типы переменных.
 
{quote}{login=Казанский}{date=14.10.2011 04:42}{thema=}{post}Попробуйте  
 
if not isnull(a(k, j)) then c(j + 1, k) = a(k, j){/post}{/quote}  
 
спасибо..  
вот так работает...  
If IsNull(a(k, j)) Then  
  c(j + 1, k) = ""  
 Else  
c(j + 1, k) = a(k, j)  
End If
VBA массив и типы переменных.
 
С помощью "ADODB - .GetRows()" копирую таблицу в массив "А".  
таблица содержит пустые записи, текст, и числа.  
Далее мне необходимо транспонировать значения массива и перевести их в текстовый формат.  
код VBA взятый из контекста..  
....  
Dim a  
....  
a = rs.GetRows()  
ReDim c(UBound(a, 2) + 1, UBound(a, 1)) As String  
For k = 0 To UBound(a, 1)  
For j = 0 To UBound(a, 2)  
c(j + 1, k) = a(k, j)  
Next j  
Next k  
Из-за того что массив "а" содержит пустые строки, возникает ошибка: "Invalid use of NULL"  
Подскажите, как решить данную проблему.  
Спасибо.
Формулы по рабете с массивом в VBA
 
{quote}{login=KukLP}{date=13.10.2011 05:34}{thema=}{post}Пример в виде файла, мне за вас рисовать лень.  
Public Sub ww()  
   Dim D(1 To 5, 1 To 2), r&, aa  
   D(1, 1) = 11  
   D(2, 1) = 22  
   D(3, 1) = 33  
   D(4, 1) = 44  
   D(5, 1) = 55  
   aa = Application.Index(D, 0, 1)  
   r = Application.Match(22, aa, 0)  
   MsgBox r  
End Sub{/post}{/quote}  
 
Спасибо, работает
Формулы по рабете с массивом в VBA
 
{quote}{login=KukLP}{date=13.10.2011 05:11}{thema=}{post}Давайте пример и чего Вам надо в результате.{/post}{/quote}  
 
Попытаюсь объяснить, что мне нужно.  
Пример    
имеем массив "D(1 to 5, 1 to 2)" где "1 to 5" - строки, "1 to 2" - столбцы.  
D(1,1)=11  
D(2,1)=22  
D(3,1)=33  
D(4,1)=44  
D(5,1)=55  
Нужно найти номер строки, столбца №1, значение котрого = 33
Формулы по рабете с массивом в VBA
 
{quote}{login=nerv}{date=13.10.2011 05:00}{thema=Re: Re: }Тогда пишите на Ассемблере ; ){/post}{/quote}  
 
Это не решение...
Формулы по рабете с массивом в VBA
 
{quote}{login=KukLP}{date=13.10.2011 04:56}{thema=}{post}Никак. Match ищет только в одномерном массиве.{/post}{/quote}  
другие способы есть?
Формулы по рабете с массивом в VBA
 
{quote}{login=KukLP}{date=13.10.2011 04:48}{thema=}{post}Public Sub www()  
Dim д(1 To 3), n&  
д(1) = 11  
д(2) = 22  
д(3) = 33  
n = WorksheetFunction.Match(22, д, 0)  
End Sub{/post}{/quote}  
ага, здорово  
подскажите, как модифицировать эту строчку "n = WorksheetFunction.Match(22, д, 0)"  
если массив будет двухмерным.  
т.е.:  
Dim д(1 To 3, 1 to 2), n&  
д(1,1) = 11  
д(2,1) = 22  
д(3,1) = 33  
n = WorksheetFunction.Match(22, д, 0)
Формулы по рабете с массивом в VBA
 
{quote}{login=nerv}{date=13.10.2011 04:42}{thema=}{post}>>Перебирать циклом несколько тысяч десятков записей массива долго  
Вы уверены? Для Excel 2003 65536 строк * 256 столбцов = 16777216 ячеек. Поиск за 3,5 сек. при 2,00 Ггц и 1,76 Мб ОЗУ с проверкой 1 условия.{/post}{/quote}  
Все относительно, если есть возможность уменьшить время выполнения обработки, почему бы этим не воспользоваться....
Страницы: 1 2 След.
Наверх