У меня есть следующий код:
Dim WS1, WS2 As Worksheet
Dim chatRange As Range
Dim cell As Range
Dim txt As String
Sub NameTest()
Set WS1 = ActiveWorkbook.Sheets("Page 1")
Set WS2 = ActiveWorkbook.Sheets("Sheet1")
x = 2
lRow1 = WS1.Cells(Rows.Count, "B").End(xlUp).Row
Set chatRange = WS1.Range("B" & x, "B" & lRow1)
For Each cell In chatRange
If cell.Offset(0, 11).Value = "Accepted" Then
txt = cell.Offset(0, 18).Value
NameSplit
End If
Next cell
End Sub
Sub NameSplit()
Dim i As Integer
Dim FullName As Variant
Dim x As String, cell As Range
Dim lRow2 As Long
FullName = RemoveBlankLines(Split(txt, vbLf))
lRow2 = WS2.Cells(Rows.Count, 2).End(xlUp).Row + 1
WS2.Cells(lRow2, 1).Value = cell.Value <===================
WS2.Cells(lRow2, 2).Value = cell.Offset(0, 2).Value <===================
WS2.Cells(lRow2, 3).Value = cell.Offset(0, 6).Value <===================
WS2.Cells(lRow2, 4).Value = cell.Offset(0, 18).Value <===================
End Sub
Это часть простого тестового кода, который я пишу, чтобы прочитать один лист и затем передать требуемую информацию на другой лист. Я хочу иметь возможность использовать информацию из «ячейки» в диапазоне, который был установлен в первом подпрограмме, для передачи деталей во втором подпункте. Он работает с объявлением WS1 и WS2 вверху, но не работает для диапазонов.
4 строки, в которых есть стрелки, - это часть, которую я пытаюсь заставить работать, когда возвращается cell.value:
Run-time error '91': Object variable or With block variable not set
Я знаю, что наилучшим способом было бы иметь все это в 1 подпункте, но я бы хотел разделить его, если это возможно
ура заранее