Как заполнить только активную ячейку, использованную при печати массива? - PullRequest
0 голосов
/ 22 апреля 2019

Я массив, который печатает новые значения с одного листа на другой (лист от источника к месту назначения), основываясь только на уникальных строках, которые я хочу обновить, он не затрагивает строки с уникальными ключами, не указанными на исходном листе.

Код выполняет смещение и обновляет каждую вторую строку после совпадения с переменной rIterator. Он прекрасно работает, но как мне заполнить ячейку индексом цвета RGB(255,255,0), пока он печатает новые значения?

Я бы хотел что-то вроде: activecell.Interior.Color = RGB(255, 255, 0) где-то в этом цикле for / next:

For i = 0 To 4 'how many rows to execute multplr array
    For j = 3 To 5 'how many columns to execute multplr array
        wsA.Cells(fndRow + i + 1, j + 47).Value = rIterator.Offset(, j - 1).Value * multplr(i) 'multiple wage by multplr array
    Next j 'next column
    i = i + 1
Next i 'next row

Остальной код:

Sub UpdateTSRS()

Dim wbk As Workbook
Dim wsA As Worksheet, wsB As Worksheet
Dim rngA As Range, rngB As Range
Dim rIterator As Range
Dim fndRow As Long
Dim multplr As Variant
multplr = Array(1, 1.1, 1.15, 1.2, 1.3)

Set wbk = ThisWorkbook
Set wsA = wbk.Sheets("Hourly")
Set wsB = wbk.Sheets("New Hourly")
Set rngA = wsA.Range(wsA.Range("E6"), wsA.Range("E6").End(xlDown))
Set rngB = wsB.Range(wsB.Range("A2"), wsB.Range("A2").End(xlDown))

For Each rIterator In rngB 'for each job code in source sheet
    On Error Resume Next
    fndRow = Application.Match(rIterator.Value, rngA, 0) + _
        rngA.Range("E1").Row - 1 'find jobcodes in destination sheet
    If Err.Number <> 0 Then
    Else
    For i = 0 To 4 'how many rows to execute multplr array
        For j = 3 To 5 'how many columns to execute multplr array
            wsA.Cells(fndRow + i + 1, j + 47).Value = rIterator.Offset(, j - 1).Value * multplr(i) 'multiple wage by multplr array
        Next j 'next column
        i = i + 1
    Next i 'next row
    End If
    Err.Clear
Next rIterator 'next job code

End Sub

1 Ответ

0 голосов
/ 22 апреля 2019

Просто создайте переменный диапазон, задайте его для своей ячейки и измените цвет интерьера!

если я вас не понял, просто поменяйте код

 Set c = wsA.Cells(fndRow + i + 1, j + 47) 

раскомментируйте это и прокомментируйте следующую строку

Dim c As Range

For i = 0 To 4 'how many rows to execute multplr array
    For j = 3 To 5 'how many columns to execute multplr array
        Set c = wsA.Cells(fndRow + i + 1, j + 47)
        'Set c = rIterator.Offset(, j - 1)
        c.Interior.Color = VBA.RGB(255, 255, 0)
        wsA.Cells(fndRow + i + 1, j + 47).Value = rIterator.Offset(, j - 1).Value * multplr(i) 'multiple wage by multplr array
    Next j 'next column
    i = i + 1
Next i 'next row

Я тебе помог?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...