Excel Если в поле есть ячейка копирования X на другой лист

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

У меня есть трекер excel, который я помещаю «X» в ячейку каждый месяц, если выполняется определенная деятельность. Этот «X» коррелирует с диапазоном ячеек на одном листе.

Я хочу иметь возможность сделать следующее. Когда я нажимаю на поле команды;

  1. Если ячейка на январь имеет «X» копии конкретных ячеек на текущей странице для определенных ячеек на другом рабочем листе.
  2. Если ячейка для февраля имеет «X», скопируйте некоторые другие конкретные ячейки на текущей странице в некоторые другие определенные ячейки на другом листе.

    Так и далее и т. Д. До декабря.

У меня есть следующий код (который не работает):

Private Sub CommandButton1_Click() Sheets("MRT").Select If InStr(1, (Range("L8").Value), "X") > 0 Then Range("E42:AA42").Select Selection.Copy Sheets("Test '12").Select Cells(3, AP).Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone End If End Sub 

Попробуй это:

 Private Sub CommandButton1_Click() If Sheets("MRT").Range("L8").Value like "*X*" Then Sheets("MRT").Range("E42:AA42").Copy Sheets("Test '12").Cells(3, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone End If End Sub 

Работала в моем тесте, однако вы можете адаптировать Cells(3,1) и другие спецификаторы положения к вашим желаемым целям.

edit: забыли о части с месяцами … подождите минуту … здесь:

 Sub FindSignificant() Dim SearchString As String Dim SearchRange As Range, cl As Range Dim FirstFound As String Dim sh As Worksheet ' Set Search value SearchString = "a" Application.FindFormat.Clear ' loop through all sheets Set sh = Sheets("MRT") ' Find first instance on sheet Set cl = sh.Cells.Find(What:=SearchString, _ After:=sh.Cells(1, 1), _ LookIn:=xlFormulas, _ LookAt:=xlPart, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False, _ SearchFormat:=False) If Not cl Is Nothing Then ' if found, remember location FirstFound = cl.Address ' format found cell Do Select Case sh.Cells(cl.Row, 1).Value Case "december" sh.Range("E42:AA42").Copy Sheets("Test '12").Cells(3, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone Case "february" sh.Range("E42:AA42").Copy Sheets("Test '12").Cells(3, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone Case Else 'do nothing End Select ' find next instance Set cl = sh.Cells.FindNext(After:=cl) ' repeat until back where we started Loop Until FirstFound = cl.Address End If End Sub 

этот код исходит отсюда

Вам пришлось бы адаптировать случай выбора, но я действительно подумал бы о решении этого без VBA, если это не обязательно;)

Interesting Posts

Копирование данных из нескольких строк только в том случае, если данные

Как изменить значение ячейки, если две ячейки соответствуют

VBA, расширенный фильтр не работает с пустым листом

Как консолидировать циклы для кода в t / f data btw. wkshts на основе 2 условий

Ошибочные вычисления формулы массива Excel программно

Отправить xls fie с телефона с помощью GMailSender

Цвет текстового поля ячейки на excel с экспортом kendo ui

Условный десятичный формат

Как добавить данные в столбец в excel с помощью vba

Условное форматирование нескольких условий VBA

Автоматическое расширение форматированной таблицы в Excel с использованием C #

Создание коллекций с пользовательским вводом

используя функцию диапазона excel с переменными

Как удалить все дубликаты в одном столбце и сохранить строку с наибольшим значением (из другого столбца)

Динамическое добавление CheckBoxes – Ошибка выполнения 424

Давайте будем гением компьютера.