Мне посоветовали опубликовать это как второй вопрос, но это отчасти продолжение моего первого найденного вопроса здесь .
У меня есть код (словарь сценариев), который предназначен для сопоставления столбцов и вставки третьего значения в другой столбец в правильной строке. Теперь проблема, с которой я сталкиваюсь (новая проблема), заключается в том, что код, похоже, не начинает вставляться из первого ряда моих листов инспектора в первую полную строку моего основного листа. Предположим, что на каждом листе много записей и постоянно добавляются новые (поэтому я стараюсь не использовать ограниченные определенные диапазоны).
Вот так:
Лавуа хранит все свои WO в своем маленьком листе. Он предназначен для того, чтобы вручную обновить «Дата Инспектора очищена», затем нажать кнопку, а затем эта дата копируется и вставляется в столбец R на мастер-листе после сопоставления через WO # (который всегда уникален и никогда не повторяется) с WO # в мастер листе (2018). Изображения ниже (мне пришлось скрыть некоторую конфиденциальную информацию - просто предположим, что это не важно.)
Лист Лавуа:
Мастер лист:
Вот мой код:
Sub dates()
Application.ScreenUpdating = False
Dim AVals As Object: Set AVals = CreateObject("scripting.dictionary")
Dim i As Long, j As Long, lastRow1 As Long, lastRow2 As Long
Dim sh_insp, sh_2018 As Worksheet
Dim MyName As String
Set sh_insp = ActiveSheet
Set sh_2018 = Sheets("2018")
With sh_insp
lastRow1 = .Range("A:A").Rows.Count 'last row in spreadsheet
lastRow1 = .Cells(lastRow1, 7).End(xlUp).Row 'last used row in column G
'load the AVal dict
For j = 18 To lastRow1
MyName = .Cells(j, 7).Value
If Len(MyName) > 0 And Len(.Cells(j, 18)) > 0 Then AVals.Add MyName, .Cells(j, 18).Value
Next j
End With
With sh_2018
lastRow2 = .Range("A:A").Rows.Count
lastRow2 = .Cells(lastRow2, 7).End(xlUp).Row 'last used row in column G
For i = 18 To lastRow2
MyName = .Cells(i, 7).Value
If AVals.Exists(MyName) Then
.Cells(i, 18).Value = AVals.Item(MyName)
End If
Next i
End With
Application.ScreenUpdating = True
End Sub
У меня есть очищенные WO # - почему копирование кода не вставляет эти значения, почему оно пропускается?