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

Найти слова и скопировать в следующий столбец в Excel

Как обращаться к фигурам в модуле

Скрыть и показать столбцы на всех листах с помощью функции VBA

Запретить ведение всех столбцов всей таблицы с помощью проверки данных

Создание слияния электронной почты excel с IBM Notes

Изменение высоты строки делает колонки нечитаемыми

Sumproduct with Substitute

Powershell для защиты суставных клеток

Как отключить кнопку ленты в Excel, если конкретный рабочий лист существует с VBA

Частота появления данных в столбце Excel на основе определенного условия

Запрос таблицы, содержащей СОДЕРЖАНИЕ подстановочных знаков

Стандартизация гетерогенных данных возраста в SPSS или Excel

Самый быстрый способ циклического перемещения по динамическим строкам

Автоматизация Excel, как определить, запускает ли пользователь макрос в листе excel или клики «Запустить макрос» CommandBarControl?

Невозможно выполнить привязку времени выполнения по нулевой ссылке – Пустые ячейки Excel

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