Я использую один столбец данных, который содержит несколько причуд. Я включил код VBA ниже деталей моей проблемы.Рекурсивный список/сортировка с избыточной или отсутствующей ячейкой
Пример того, как организован данные:
- ИМЕНИ
- Суда
- офф
- Суд
- офф
- офф
- Суд
- офф
Однако из-за того, как данные были собраны, Суд не всегда указан. Это отбрасывает мои столбцы, когда я переношу данные. VBA, который я написал, пытался исправить это, когда есть экземпляр Offe, если предыдущая ячейка является судом, регулярно печатайте Offe. Если предыдущая ячейка не была судом, распечатайте предыдущий суд (сохраненный как CourtCell), а затем распечатайте Offe и перейдите к следующей ячейке.
Я получаю объект, требуемый для ошибки.
Sub CourtAdder()
Dim lngRowLast As Long, _
lngRowPaste As Long, _
lngColOffset As Long
Dim rngCell As Range, _
rngDataSet As Range
Dim strSourceTab As String, _
strOutputTab As String
'Tab name containing source data. Change to suit.
strSourceTab = "Sheet1"
'Tab name for data output. Change to suit.
strOutputTab = "Sheet2"
lngRowLast = Sheets(strSourceTab).Cells(Rows.Count, "A").End(xlUp).Row
'Assumes the original dataset is in Column A and starts at Row 1. Change to suit.
Set rngDataSet = Sheets(strSourceTab).Range("A1:A" & lngRowLast)
Application.ScreenUpdating = False
For Each rngCell In rngDataSet
If Left(rngCell.Value, 5) = "Court" Then
CourtCell = ActiveCell.Value
End If
If Left(rngCell.Value, 4) = "Offe" Then
If Left(Rng.Cell.Value.Offset(-1, 0), 4) = "Cour" Then
lngRowPaste = 27
lngColOffset = 1
Else
ActiveCell.PasteSpecial (xlPasteValues)
lngRowPaste = 1
lngColOffset = 1
End If
Else
lngRowPaste = lngRowPaste + 1
lngColOffset = 1
End If
' Sheets(strOutputTab).Cells(lngRowPaste, lngColOffset).Value = rngCell.Value'
' lngColOffset = lngColOffset + 1 '
Next rngCell
Application.ScreenUpdating = True
End Sub
Где именно вы получаете сообщение об ошибке? – grahamj42
Требуемый объект Ошибка, упомянутая OP – 2013-03-29 19:15:20
'Rng.Cell.Value.Offset (-1, 0)' ~~> 'rngCell.Offset (-1, 0) .Value' –