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

Страницы: 1
VBA. Не осуществляется поиск ячеек с числовыми значениями, Через Find не могу найти ячейки, в которых содержится заданное число
 
Здравствуйте! Пробовал установить разные форматы ячеек, но ничего не помогает. Текст ищет хорошо, а вот числа нет. Можно ли что-то сделать?
Переход по гиперссылке по клавише enter, Помогите сделать переход по гиперссылке без мыши, ...
 
... лучше по клавише enter.
Передача макроса из книги В в книгу А с закрытием книги В, При передаче команда обрывается
 
Здравствуйте!
Во время работы мне необходимо макросом закрыть книгу В, активировать уже открытую книгу А, и в этой книге вызвать форму 1.

В книге В я выполняю:
Workbooks("В.xlsb").Save
Application.Run "А.xlsb!Module2.Форма1".

В книге А:
Workbooks("В.xlsb").Close False
UserForm1.Show

Процесс обрывается на:
Workbooks("В.xlsb").Close False,
то есть форма 1 не вызывается.

Если сначала поставить открытие формы 1, а затем закрытие книги В, то форма вызывается, но не закрывается книга.
Как бы решить эту проблему? Спасибо!
При выемке из ListBox 16-значное число отражать полностью
 
Здравствуйте!
В столбцах 4 и 5 ListBox5 - 16-значные числа.
Когда я все столбцы переношу в ячейку в виде строки, они отображаются как 1,01115411581744E+15. Где и какой формат указать, чтобы числа отражались полностью (допустимо в виде текста). Спасибо!
Код
Stroka = Stroka & ListBox1.List(i, 0) & " " & CDate(ListBox1.List(i, 1)) & " " & ListBox1.List(i, 2) & " " & ListBox1.List(i, 3) & " " & ListBox1.List(i, 4) & " " & ListBox1.List(i, 5) & " " & ListBox1.List(i, 6) & " " & ListBox1.List(i, 7) & " " & ListBox1.List(i, & "" & "/" & Chr(10)
  
   
Поиск до последней заполненной ячейки и вывод номеров столбцов
 
Уважаемые форумчане, помогите, пожалуйста, адаптировать код под мои нужды. У самого ничего не получается.
Необходимо, чтобы поиск осуществлялся по строчке №6 до последней заполненной ячейки и выводил найденные значения в виде номера колонок, в которых они находятся. Поиск должен быть не точным (находить по части слова, например, ТОМСК, ТОМСКГАЗ, ЭНЕРГОТОМСК). Если это важно, то код будет находиться в одном файле (в юзерформе), а поиск осуществляться в другом. Большое спасибо!
P.S. Малые буквы - это комментарии, которые уже были в коде, когда я его нашел.
Большие - мои комментарии.
Код
Sub Poisk()Dim cell As Range,cellsDel As Range, cellAddress As String
With Workbooks("Книга1.xlsx").Sheets("Лист2").cells(6, Columns.Count).End(xlToLeft).Column.UsedRange ' ЗДЕСЬ, КАК Я ПОНИМАЮ, НУЖНО УКАЗАТЬ, ГДЕ ИСКАТЬ. УКАЗАЛ

' ЗДЕСЬ, ЧТО ИЩЕМ. УКАЗАЛ  Set cell = .Find(Workbooks("Книга1.xlsx").Sheets("Лист1").Range("H2")) 'ищем первую попавшуЮсяIf Not cell Is Nothing Then 'если нашлиSet cellsDel = cell.Resize(2) 'сохраняем в переменную, увеличенную до 2 строк (Resize(2)) 'МНЕ НИЧЕГО УВЕЛИЧИВАТЬ НЕ НАДО
cellAddress = cell.Address 'запоминаем адрес, потому что FindNext будет искать по кругу и ее надо будет остановить
Do
Set cell = .FindNext(cell) 'продолжаем поиск после ячейки cell
If Not cell Is Nothing Then Set cellsDel = Union(cellsDel, cell.Resize(2)) 'если нашли, то добавляем в cellsDel ЗДЕСЬ ТОЖЕ ДВОЙКА В КОНЦЕ СМУЩАЕТ - УВЕЛИЧИВАТЬ НИЧЕГО НЕ НУЖНО      'DoEvents 'эту штуку можно ставить на стадии отладки, чтоб можно остановить Do...Loop в случае косяка
Loop Until cellAddress = cell.Address 'если дошли до адреса который уже был, выпадаем из Do...Loop
cellsDel.EntireRow.Delete 'удаляем строки принадлежащие ячейкам в переменной cellsDel МНЕ НЕ НУЖНО УДАЛЯТЬ - 'НУЖНО НОМЕРА КОЛОНОК СО ВСЕМИ НАЙДЕННЫМИ ЗНАЧЕНИЯМИ ВЫСТРОИТЬ В СТОЛБИК НА ЛИСТЕ Workbooks("Книга1.xlsx").Sheets("Лист1"), НАЧИНАЯ С ЯЧЕЙКИ I1.
End If
End With
End sub
' КОД БУДЕТ НАХОДИТЬСЯ В КНИГЕ Книга2.xlsb
Поиск ячеек со значениями больше ноля и вывод их адресов
 
Здравствуйте! Мне необходимо найти все значения больше 0,01 во второй строке, где есть и цифры, и текст, и вывести их адреса в столбик на втором листе. Если это не сильно затруднит задачу, то значения больше 0,01 нужно искать во второй строке в столбцах В, Е, Н и далее через каждые два столбца до первой пустой ячейки в строке (там цепочка обрывается). Заранее спасибо!
Вписать формулу по типу "сцепить" макросом, Часть формулы нужно брать из ячейки
 
Здравствуйте! Пробую и так, и так - ничего не выходит.
Без привязки к примеру скажите, пожалуйста, это может работать? Если да, то в чем здесь ошибка?
Код
Workbooks("Книга1.xlsb").Worksheets("Лист1").[B2].FormulaR1C1 = _
"=ЕСЛИОШИБКА(ИНДЕКС('C:\Users\" & Workbooks("Книга1.xlsb").Worksheets("Лист2").[A1] _
& "\OneDrive\Общие\[Сеть.xlsb]Данные'!$D:$D;ПОИСКПОЗ($B$1;'C:\Users\" _
& Workbooks("Книга1.xlsb").Worksheets("Лист2").[A1] & "\OneDrive\Общие\[Сеть.xlsb]Данные'!$A:$A;0));"""")"

Найти совпадения в столбце с имеющимся значением и указать их адреса, Значение J1 найти в столбце B и адреса всех совпавших ячеек вынести в столбец I
 
Здравствуйте!
Необходимо пройтись по столбцу B и найти ячейки с фамилией, указанной в J1.
В столбце I указать номер строки всех ячеек из столбца B, в которых встретилась фамилия из J1.
Желательно, чтобы в I адреса выстроились вверх по порядку без пропусков.
Спасибо!
Поставить числа из двух столбцов "каждое с каждым", Желательно макросом
 
Здравствуйте!
В столбцах F и G есть числа. Необходимо перенести их в столбцы H и I, соответственно, но так, чтобы каждое число из F было в парке с каждым из G. Более понятно показано в файле вложения. В колонках F и G может быть разное количество чисел.
Спасибо!
Поиск значений в столбце с указанием строк, в которых они найдены
 
Здравствуйте! Прошу помочь с доработкой кода. Данный код ищет заданные слова в столбце, выделяет совпадения жирным и окрашивает красным. Вместо выделения совпадений, мне необходимо указывать номера строк, в которых они находятся. Перечень номеров строк необходимо вывести в Workbooks("7.0.xlsb").Sheets("Спер") в столбец А. Большое спасибо!
Код
Sub Find_n_Highlight()
    On Error Resume Next: Err.Clear
    Dim ra As Range, cell As Range, res, txt$, v, pos&
    res = Workbooks("7.0.xlsb").Sheets("Сдан").Range("C2")
    If VarType(res) = vbBoolean Then Exit Sub    ' нажата кнопка ОТМЕНА
    txt$ = Trim(res): If Len(txt) = 0 Then Exit Sub    ' текст не введен, или состоит из пробелов    
    Set ra = Workbooks("Сеть7.xlsb").Sheets("Срас").Range([P2], Range("P" & Rows.Count).End(xlUp))    ' диапазон для поиска
    Application.ScreenUpdating = False
    ra.Font.Color = 0: ra.Font.Bold = 0  ' сброс цветового выделения    
    For Each cell In ra.Cells    ' перебираем все ячейки
        pos = 1
        If cell.Text Like "*" & txt & "*" Then
            arr = Split(cell.Text, txt, , vbTextCompare)   ' разбивает текст ячейки на части
            If UBound(arr) > 0 Then    ' если подстрока найдена
                For Each v In arr    ' перебираем все вхождения
                    pos = pos + Len(v)    ' начальная позиция
                    With cell.Characters(pos, Len(txt))
                        .Font.ColorIndex = 3    ' выделяем цветом
                        .Font.Bold = True    ' и полужирным начертанием
                    End With
                    pos = pos + Len(txt)
                Next v
            End If
        End If
    Next cell
End Sub
Изменено: Platon - 04.04.2018 14:48:54
Ускорить макрос пересохранения файлов
 
Два одинаковых файла лежат в разных папках. Макросы "Дата" определяют дату последнего изменения каждого из них. Если даты разные (значение ИСТИНА в столбце F - формула), то более новый файл открывается и пересохраняется вместо старого. Так как таких файлов 20, процесс занимает длительное время. Подскажите, пожалуйста, можно ли как-то ускорить эту операцию? Большое спасибо!
Код
Private Sub
Дата1()
Dim sFileName As String
sFileName1 = Workbooks("Старт.xlsm").Sheets("Обновка").Range("B1")
Workbooks("Старт.xlsm").Sheets("Обновка").Range("C1") = FileDateTime(sFileName1)
sFileName2 = Workbooks("Старт.xlsm").Sheets("Обновка").Range("B2")
Workbooks("Старт.xlsm").Sheets("Обновка").Range("C2") = FileDateTime(sFileName2)
sFileName3 = Workbooks("Старт.xlsm").Sheets("Обновка").Range("B3")
Workbooks("Старт.xlsm").Sheets("Обновка").Range("C3") = FileDateTime(sFileName3)
Дата2
End Sub


Private Sub
Дата2()
Dim sFileName As String
sFileName1 = Workbooks("Старт.xlsm").Sheets("Обновка").Range("D1")
Workbooks("Старт.xlsm").Sheets("Обновка").Range("E1") = FileDateTime(sFileName1)
sFileName2 = Workbooks("Старт.xlsm").Sheets("Обновка").Range("D2")
Workbooks("Старт.xlsm").Sheets("Обновка").Range("E2") = FileDateTime(sFileName2)
sFileName3 = Workbooks("Старт.xlsm").Sheets("Обновка").Range("D3")
Workbooks("Старт.xlsm").Sheets("Обновка").Range("E3") = FileDateTime(sFileName3)
Файл1
End Sub


Private Sub
Файл1()
If Workbooks("Старт.xlsm").Sheets("Обновка").Range("F1") = True Then
Workbooks.Open Filename:=Workbooks("Старт.xlsm").Sheets("Обновка").Range("D1")
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs
Filename:=Workbooks("Старт.xlsm").Sheets("Обновка").Range("B1") & Workbooks("Старт.xlsm").Sheets("Обновка").Range("I1").Value & Workbooks("Старт.xlsm").Sheets("Обновка").Range("J1")
Application.DisplayAlerts = True
ActiveWindow.Close False
Файл2
Else
Файл2
End If
End Sub


Private Sub
Файл2()
If Workbooks("Старт.xlsm").Sheets("Обновка").Range("F2") = True Then
Workbooks.Open Filename:=Workbooks("Старт.xlsm").Sheets("Обновка").Range("D2")
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs
Filename:=Workbooks("Старт.xlsm").Sheets("Обновка").Range("B2") & Workbooks("Старт.xlsm").Sheets("Обновка").Range("I2").Value & Workbooks("Старт.xlsm").Sheets("Обновка").Range("J2")
Application.DisplayAlerts = True
ActiveWindow.Close False
Файл3
Else
Файл3
End If
End Sub
 

Private Sub
Файл3()
If Workbooks("Старт.xlsm").Sheets("Обновка").Range("F3") = True Then
Workbooks.Open Filename:=Workbooks("Старт.xlsm").Sheets("Обновка").Range("D3")
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs
Filename:=Workbooks("Старт.xlsm").Sheets("Обновка").Range("B3") & Workbooks("Старт.xlsm").Sheets("Обновка").Range("I3").Value & Workbooks("Старт.xlsm").Sheets("Обновка").Range("J3")
Application.DisplayAlerts = True
ActiveWindow.Close False
Файл4
Else
Файл4
End If
End Sub
Изменено: Platon - 12.09.2016 18:18:37
Как закрыть UsreForm2 из UserForm1, UserForm1 открывает UserForm2, но не может ее закрыть
 
Когда выполняется действие, указанное в коде UserForm1, на экран выводится UserForm2 с сообщением немного подождать. Когда действие UserForm1 заканчивается, UserForm2 должна автоматически закрываться, но этого не происходит. Подскажите, пожалуйста, почему и как исправить ошибку?
Цикл, робегающий строки и складывающий числа, Построчно сложить две колонки, найти последнюю строку и остановться
 
В столбце G сумма, которую нужно приплюсовать в столбец С этой же строки, то есть С6 + G6, C7 + G7  и т.д. Помогите, пожалуйста, написать цикл, который пробегал бы все строки вплоть до последней. Последнюю пустую строку цикл должен определять сам. По ее достижению останавливаться. Спасибо!
Страницы: 1
Наверх