Я создал метод для определения диапазона между двумя словами и перебора его, чтобы скопировать значения вставки с одного рабочего листа на другой. По какой-то странной причине он не работает.
- Я указываю строку, это 18, мой код начинается с строки 20? Таким образом, он копирует все, начиная с строки 20. O_o
- Он неправильно определяет диапазон, поскольку он также копирует значения под моими словами? Я проверил, что у меня нет таких слов в другом месте.
Есть предложения?
Вот код для вызова метода:
Sub dsfdsfdsfds()
copyOptionsToTable 18, CalculationItemOM1
End Sub
Вот метод :
Private Sub copyOptionsToTable(RowToPaste As Integer, OperatingWorksheet As Worksheet)
'Dim FirstWord, SecondWord
Dim OptionsRange As Range
Dim cell, x
'Set FirstWord = OperatingWorksheet.Range("W:W").Find("OPTIOONS START", LookIn:=xlValues, lookat:=xlWhole)
'Set SecondWord = OperatingWorksheet.Range("W:W").Find("OPTIOONS END", LookIn:=xlValues, lookat:=xlWhole)
Set OptionsRange = OperatingWorksheet.Range(OperatingWorksheet.Cells.Find("[OPTIOONS START]"), OperatingWorksheet.Cells.Find("[OPTIOONS END]"))
x = 0
' Copy - Paste process
For Each cell In OptionsRange
If Not IsEmpty(cell.Value) Or cell.Value <> "OPT" Then
ThisWorkbook.Worksheets("TableForOL").Range("B" & RowToPaste).Offset(0 + x, 0).Value = cell.Offset(0 + x, -20).Value
ThisWorkbook.Worksheets("TableForOL").Range("B" & RowToPaste).Offset(0 + x, 3).Value = cell.Offset(0 + x, 2).Value
End If
x = x + 1
Next cell
End Sub
Исходный лист:
Output sheet:
EDIT:
Output still looks like this?
введите описание изображения здесь