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

Страницы: 1 2 3 4 5 След.
Сравнение двух столбцов в разных книгах и добавление значений в первую книгу, не работает макрос
 
Цитата
KL написал: If cell Is Nothing Then
    arr(UBound(arr)) = c.Value
    ReDim Preserve arr(UBound(arr) + 1)
End If
Я прошу прощения, последний вопрос: а как правильно прописать, чтобы помимо целевой ячейки добавлялась также ячейка Cells(i, 2).Offset(, 1)? Т.е. первая ячейка, которая стоит справа от заданной.

Прошу прощения, что сразу не уточнил данный вопрос - в процессе доработки  придумал, как еще можно оптимизировать файл...
Сравнение двух столбцов в разных книгах и добавление значений в первую книгу, не работает макрос
 
Подскажите, пожалуйста, а как в случае с массивами добавить условие на проверку шестого столбца в файле Report, как было у меня в макросе:

If Cells(i, 2).Offset(, 4) = "BRV" Then

Я правильно понимаю, это должно быть как исправления ниже?
Код
Set wbReport = Workbooks.Open(strFileName)
    With wbReport.Worksheets("Sheet1")
        Set rngReport = .Range(.Cells(2, 6), .Cells(.Rows.Count, 2).End(xlUp))
    End With
     
    arrInput = rngReport.Value
     
    ReDim Preserve arr(4)
    For Each i In arrInput
        Set c = rngSummary.Find(What:=i, LookIn:=xlValues)
        If c(1, 1) Is Nothing Then
                  If с(1, 4) = "BRV" Then
                      arr(UBound(arr)) = i
                      ReDim Preserve arr(UBound(arr) + 1)
                 End If
        End If
    Next i
    ReDim Preserve arr(UBound(arr) - 1)
    wbReport.Close False
     
    With rngSummary
        .Cells(.Rows.Count + 1, 1).Resize(UBound(arr) + 1).Value = Application.Transpose(arr)
    End With
Изменено: Александръ - 18.01.2016 19:22:01
Сравнение двух столбцов в разных книгах и добавление значений в первую книгу, не работает макрос
 
Спасибо большое! Я так понимаю, мой вариант совсем корявым был и не имеет смысла даже спрашивать, почему он не работал? Столько времени на него потратил...
Сравнение двух столбцов в разных книгах и добавление значений в первую книгу, не работает макрос
 
Если этот макрос уже не спасти, могу скинуть предыдущие макросы - было бы отлично, если бы хоть один из них заработал...
Сравнение двух столбцов в разных книгах и добавление значений в первую книгу, не работает макрос
 
Извините, исправился. Вроде и до этого облегчил файлы до предела, но оказалось, еще есть куда.
Сравнение двух столбцов в разных книгах и добавление значений в первую книгу, не работает макрос
 
Добрый день!

Помогите, пожалуйста, разобраться почему не работает макрос и как исправить код. Я хочу сравнить столбец 3 из книги "Sample" со столбцом 2 из книги "Report", и если в Sample нет каких-то значений, добавить их туда. Примеры файлов во вложении.

Я уже и гуглил, и яндил...скачал кучу подобных макросов и попробовал оптимизировать под себя...сначала с созданием библиотек, потом с созданием массивов - ничего не работает. Перешел уже на простейший вариант с перебором, но и он работать не хочет. Я в отчаяньи.

Заранее большое спасибо!
Изменено: Александръ - 18.01.2016 17:15:59
Найти дубликаты в столбце и добавить цифры в конце значений дубликатов, начиная со второго
 
Прошу прощения, очень давно не заходил, а дизайн сильно поменялся. Обязательно перечитаю все правила.
Найти дубликаты в столбце и добавить цифры в конце значений дубликатов, начиная со второго
 
Идеально!
Формула также подходит.

Спасибо вам огромное!
Найти дубликаты в столбце и добавить цифры в конце значений дубликатов, начиная со второго
 
Добрый день!

Помогите, пожалуйста, разобраться, почему код не работает. Необходимо найти дубликаты в столбце и, начиная со второго дубликата, добавить в конце цифры.

Например:
Артикул   (как есть)Артикул (как должно быть)
1101811018
1102011020
1102011020(1)
1102011020(2)
1102011020(3)
1102211022
1102211022(1)
1102211022(2)
Также пример во вложении.
Я написал макрос, но он не работает. Помогите, пожалуйста, понять почему и, возможно, как-то оптимизировать его (понимаю, что перебор - не самый оптимальный путь).
Код
Sub Test()
Dim n As Integer, k As Integer, m As Integer
Dim lLastRow As Long

lLastRow = Cells(Rows.Count, 1).End(xlUp).Row    
m = 1

For k = lLastRow To 1
    If Cells(k, 1).Value = Cells((k - 1), 1).Value Then
        Cells(k, 1).Value = CStr(Cells(k, 1).Value) & "(" & m & ")"
        m = m + 1
        k = k - 1
    Else
    m = 1
    k = k - 1
    End If
Next k
End Sub

Заранее спасибо!
Ошибка в макросе добавляющем в столбец отсутствующие значения
 
Цитата
Юрий М пишет:
Александръ , а интересно мне вот что - зачем Вы (см. # 8)  целиком цитируете? И даже себя.
Случайно вышло...
Ошибка в макросе добавляющем в столбец отсутствующие значения
 
Цитата
Юрий М пишет:
Александръ пишет:
Возможно, модератору будет интересно: В сообщения постоянно пропадают скобки...
Неинтересно - отключайте в сообщении смайлы))
Пробовал - все равно смайлы добавлялись)) Теперь уже знаю в чем проблема)
Ошибка в макросе добавляющем в столбец отсутствующие значения
 
Прошу прощения, даже не подозревал об этом. Спасибо, просветили!)
Ошибка в макросе добавляющем в столбец отсутствующие значения
 
Спасибо большое и Sanja, и RAN! Перенос строки с GoTo действительно все поправил и макрос заработал. Но делает абсолютно не то, что нужно...( Добавляет в низ списка что попало - включая элементы самого списка. Удаление End If - то же самое.
К сожалению, я не знаю, как нужно...пишу макрос, зная только основные понятия. Знаю только как он должен работать в идеале - описал выше.
Нашел в сети следующее решение, написанное KuklP, но поскольку в библиотеках даже не ориентируюсь, не понимаю, как его переписать под свою задачу:
Код
Public Sub www()
    Dim a, b, i&, n&
    a = Me.[a1].CurrentRegion.Value
    ReDim b(1 To UBound(a, 1) + Sheets(2).UsedRange.Rows.Count, 1 To 1)
    With CreateObject("scripting.dictionary"
    For i = 1 To UBound(a)
        If Not .exists(a(i, 1)) Then _
         n = n + 1: .Item(a(i, 1)) = n: b(n, 1) = a(i, 1)
    Next
    a = Sheets(2).[a1].CurrentRegion.Value
    For i = 2 To UBound(a)
        If Not .exists(a(i, 1)) Then _
         n = n + 1: .Item(a(i, 1)) = n: b(n, 1) = a(i, 1)
    Next
    End With
    Sheets(1).[a1].Resize(n, 1) = b
End Sub
Не подскажете, как его можно переписать?
Заранее спасибо!

З.Ы. Возможно, модератору будет интересно: В сообщения постоянно пропадают скобки - автозамена меняет их на смайлик. После исправления скобка все равно не отображается в сообщении.
Ошибка в макросе добавляющем в столбец отсутствующие значения
 
Добрый вечер!

Уважаемые форумчане,
сразу хочу попросить прощение за отсутствие примера - выкладываю только часть макроса, сам макрос довольно большой и неоптимальный. Если пример необходим - напишите, пожалуйста, создам отдельный файл.

Часть большего макроса - это макрос, приведенный ниже.
Он должен сравнивать список, размещенный на листе, который я назвал "BazaSht" с несмежным массивом данных - range("D10:P33"  ;)  . И если в массиве есть значение длиной больше 5 символов, которого нет в списке - добавлять его в список снизу.
Но он выдает ошибку "Compile error: End If without block If" в строке, на которую указывает стрелка. Подскажите, пожалуйста почему и как это исправить. Сам испробовал уже различные варианты - ничего не помогает...
Код
             Set rRange = Worksheets("TDSheet".Range("D10:P33"
             
             With BazaSht

                iLastRow = Range("A7".SpecialCells(xlLastCell).Row
                n = iLastRow + 1
                
                For Each aCell In Range("A7", Cells(Rows.Count, 1).End(xlUp))
                    For Each rCell In rRange
                        If Len(rCell.Value) > 5 Then
                           If rCell.Value = aCell.Value Then GoTo aNext
                           Else
                                   BazaSht.Cells(n, 1).Value = rCell.Value
                                   n = n + 1
                           End If
 ---->                End If
                   Next rCell
aNext:
                Next aCell

             End With
Заранее большое спасибо!
Сбор данных из разных файлов в один (VBA), Поиск данных по условию из таблиц, размещенных в разных файлах и их консолидация в одну таблицу
 
Подскажите, пожалуйста, в каком направлении копать... что лучше использовать...
Я постараюсь разобраться и реализовать сам...

Заранее очень благодарен!
Сбор данных из разных файлов в один (VBA), Поиск данных по условию из таблиц, размещенных в разных файлах и их консолидация в одну таблицу
 
Прошу прощения...забыл прикрепить...
Сбор данных из разных файлов в один (VBA), Поиск данных по условию из таблиц, размещенных в разных файлах и их консолидация в одну таблицу
 
Добрый день!

Помогите, пожалуйста, написать макрос, который собирал бы данные из разных файлов (файлов несколько десятков) и консолидировал в один.
Для примера приложил два файлика - нужно из файлика 2 найти данные по фруктам и коробкам и приплюсовать их в соответствующую ячейку файлика 1. Названия фруктов могут быть расположены в разном порядке, но порядок коробок всегда одинаков.

Своими силами получилось написать вот такое ничтожество, которое не работает потому что я неправильно расположил циклы, но ответ, как это сделать корректно, никак не приходит:

Sub Try()

Dim i As Long
Dim n As Long

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For n = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) = Workbooks("2.xlsx")  .Worksheets("1")  .Cells(n, 1) Then
Cells(i, 1).Offset(0, 1) = Cells(i, 1).Offset(0, 1) + Workbooks("2.xlsx") .Worksheets("1")  .Cells(n, 1)
Cells(i, 1).Offset(0, 2) = Cells(i, 1).Offset(0, 2) + Workbooks("2.xlsx") .Worksheets("1")  .Cells(n, 1)
Cells(i, 1).Offset(0, 3) = Cells(i, 1).Offset(0, 3) + Workbooks("2.xlsx") .Worksheets("1")  .Cells(n, 1)
End If
Next
Next

End Sub

Посмотрел старые макросы, которые удалось с Вашей помощью реализовать - наверное можно данные с файла 2 загнать в массив, и потом использовать его - но ранее пробовал писать что-то только с одномерными массивами, и потому не знаю, как обращаться с двумерными...та же история с коллекциями...понимаю, что даже если этот вариант заработает, то он будет не оптимальным. Может, подскажете, как его написать изаначально более оптимальным? Что лучше использовать?

Заранее очень благодарен!
Изменено: Александръ - 01.03.2013 13:28:16
Выделение цветом минимального значения в строке, условное форматирование.
 
Мдааа...вот это я дал...
Спасибо большое! Все предельно понятно.
Выделение цветом минимального значения в строке, условное форматирование.
 
Я пробовал.
Для файла из вложения делал это с помощью формул "=AND(A1=MIN($A1:$C1);ISNUMBER(A1))" и "=AND(F1=MIN($F1:$H1);ISNUMBER(F1))" соответственно. Но при этом выделились абсолютно некорректные значения. Возможно, ошибка в формулах? Если да, подскажите,пожалуйста, какая?

Заранее спасибо!
Изменено: Александръ - 01.03.2014 11:53:55
Выделение цветом минимального значения в строке, условное форматирование.
 
Добрый день!
Нашел в интернете как можно с помощью условного форматирования выделить цветом минимальное значение в строке. Файл с примером прилагаю (в прикрепленном файле условное форматирование применено к странице).

Подскажите, а если на странице две таблицы и в каждой необходимо выделить минимальное значение, можно ли это сделать с помощью условного форматирования?
Пробовал сделать это самостоятельно, но меня постигло полнейшее фиаско. Найти ответ в интернете также не удалось.
Заранее благодарен за помощь!
Выбор из данных в ячейке только кириллицы/латиницы.
 
Да, конечно. Добавил пример с тире, как в оригинальном файле.  
 
еще раз спасибо!
Выбор из данных в ячейке только кириллицы/латиницы.
 
Владимир, спасибо большое!  
 
Подскажите, а можно также "-" включить? Данных много, и сначала не заметил строк с дефисом...Прошу прощения за изначально некорректный вопрос...  
 
И можно ли подобным образом выбрать кириллицу?  
 
Очень благодарен.
Выбор из данных в ячейке только кириллицы/латиницы.
 
Здравствуйте.  
 
Подскажите, возможно ли вернуть в ячейку из заданной только латинские символы и цифры? Или только кирилличные символы?  
Т.е. если в ячейке значение "Плитка MO1232", вернуть в ячейку значение "MO1232"?  
 
Пробовал найти ответ самостоятельно - к сожалению, нашел только проверку наличия латинских символов в ячейке.  
 
На всякий случай пример прилагаю.  
 
Заранее большое спасибо!
VBA. Замена данных из массива на заданное.
 
Спасибо большое!  
 
Попробую это реализовать и через массивы и через коллекцию....надо же учиться))
VBA. Замена данных из массива на заданное.
 
Ответ нашел. Это можно реализовать через функцию Array.  
 
Тему можно закрывать или удалить.  
Прошу прощения за зря созданную тему..
VBA. Замена данных из массива на заданное.
 
Здравствуйте!  
 
Вопрос глупый, и возможно оффтоп, но все же интересно..  
 
Можно ли в VBA реализовать замену данных из целого массива на заданное?  
Т.е.: Есть ячейки со значениями. Если значение в ячейке равно значению из массива (а в массиве 30 разных значений, которые нельзя задать одним явным условием), то значению ячейки присвоить 1.    
Чтобы не надо было писать 30 разных case или if и не надо было создавать таблицу на каком-нибудь листе в Excel, а все реализовать только в VBA? И если можно то как?  
 
Пример не выкладываю, поскольку вопрос пришел в голову во время написания макроса, и какого-либо практического примера у меня нет (хотя, если это необходимо, могу придумать какой-нибудь пример).  
 
Нагуглить ответ не удалось (возможно в строке поиска неправильно формулировал вопрос).  
 
Прошу прощение за столь похабное оформление темы.  
Заранее спасибо за ответ!
VBA. Выбор уникальных значений в двух столбцах.
 
)))))  
Спасибо большое, сейчас буду пробовать...  
 
З.Ы. Отдельное спасибо за комментарии :)
VBA. Выбор уникальных значений в двух столбцах.
 
Есть еще нюанс - макрос предназначается для работы с разными таблицами, и изначально я не знаю, сколько значений в столбце, но это в принципе можно определить отдельной процедурой...
VBA. Выбор уникальных значений в двух столбцах.
 
Да, выбрать уникальные нужно из двух зеленых столбцов.    
 
Важное уточнение (к сожалению, забыл написать), из столбца "а" необходимо выбрать уникальные не из полных значений, а из первых 4 знаков каждого значения.  
 
По факту макрос в отдельных столбцах делает следующее:  
1. Берет первые 4 знака каждого значения в столбце "а"  
2. Сцепляет полученное со значением из столбца "с"  
3. Выбирает уникальные  
4. Разбивает полученные данные опять на 2 столбца  
 
С массивами, боюсь, не смогу реализовать... :(
VBA. Выбор уникальных значений в двух столбцах.
 
Здравствуйте.  
 
Помогите, пожалуйста, улучшить макрос.  
Появилась необходимость в выборе уникальных значений по двум столбцам (по типу, как это реализовано в сводных таблицах). Но оба этих столбца в таблице имеют разрывы.  
 
Макрос я реализовал в меру своего разумения (поскольку в VBA слабо разбираюсь, то и алгоритм решения и реализация на низком уровне), но есть две проблемы:    
1. Все равно появляются задвоенные значения (эта проблема есть и в файле во вложении)  
2. Не знаю, как избавиться от пустых значений.  
 
Подскажите, пожалуйста, как можно решить данные проблемы.  
Кроме того, подозреваю, он будет очень медленно работать на больших таблицах - может, его как-то можно оптимизировать?  
 
Заранее большое спасибо за помощь!  
 
P.S. Заранее предвидя Ваш возможный вопрос - использовать сами сводные таблицы я не могу, поскольку этот макрос - часть еще большего макроса. Хотелось бы все один раз автоматизировать и забыть...
Страницы: 1 2 3 4 5 След.
Наверх