Excel VBA-отображение текста в ячейке на основе данных предыдущей ячейки - PullRequest
0 голосов
/ 16 октября 2018

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

enter image description here Я ищу код для заполнения ячеек на листе «Сводка» с помощью «Да» или «Нет» в зависимости от того, являются ли предыдущие 5 ячеек пустыми или нет, начиная сс ячейкой G2.Обратите внимание, что данные на листе «Сводка» извлекаются из листа «Необработанные данные».

Например, сотрудник 1: в ячейке G2 на листе «Сводка» отображается «Нет», поскольку все ячейки вдиапазон «Необработанные данные»! B2: F2 не пустые.То же самое с H2, так как все ячейки в «сырых данных»! C2: G2 не пустые.I2 будет отображать «Да», потому что в диапазоне «Необработанные данные» есть пустая ячейка! D2: H2.

Это будет продолжаться для каждой строки, в которой есть данные в столбце A.

Заранее спасибо и, пожалуйста, дайте мне знать, если я не объяснил это достаточно, Кевин

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Raw Data Tab

Summary tab

Это было проверено, теперь все должно работать правильно, не уверен, что вам все еще нужноответ или нет, но на вкладке «Сводка» применено некоторое условное форматирование, чтобы явно выделить зеленый цвет, если он «Да», и красный, если его значение «Нет». На вкладке «Необработанные данные» я ввел случайные значения, но это не должно иметь значения, если я что-то не знаю.

Sub Yes_No()


Dim lastrow As Long
Dim lastcol As Long
Dim wb As Workbook
Dim ws As Worksheet
Dim ws2 As Worksheet


Set wb = ActiveWorkbook
Set ws = wb.Sheets("Summary")
Set ws2 = wb.Sheets("Raw Data")
lastcol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
lastrow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

 For i = 2 To lastrow
   For j = 7 To lastcol


  If ws2.Cells(i, j - 1) <> "" And _
     ws2.Cells(i, j - 2) <> "" And _
     ws2.Cells(i, j - 3) <> "" And _
     ws2.Cells(i, j - 4) <> "" And _
     ws2.Cells(i, j - 5) <> "" Then

       ws.Cells(i, j).Value = "Yes"

  Else

       ws.Cells(i, j).Value = "No"


 End If


   Next j
 Next i





End Sub
0 голосов
/ 16 октября 2018

Введите следующую формулу в G2 на вашем Сводном листе:

=IF(COUNT('Raw Data'!B2:F2)=5,"No","Yes")

Вы можете затем перетащить его вправо (а затем вниз), как вам нужно.

И вот небольшая модификация, чтобы не показывать «Да» для пустых строк:

=IF('Raw Data'!B2="","",IF(COUNT('Raw Data'!B2:F2)=5,"No","Yes"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...