Диапазон переменных на основе значения ячейки - PullRequest
0 голосов
/ 24 января 2020

Не уверен, правильно ли я сделал код, но он есть.

Моя проблема - эта строка ws.Range("B" & J, Range("K" & J)).copy. Это дает мне ошибку во время выполнения 1004 Ошибка диапазона метода рабочего листа объекта.

Я пытаюсь скопировать / вставить любую строку b: k, если в столбце «P» указано «записано».

Ваша помощь очень ценится. Спасибо.

Sub Clear_Recorded()

Dim ws As Worksheet
Dim ws1 As Worksheet
Dim lRow As Integer 'Data Tab
Dim count As Integer

Set ws = Sheet1 'Data
Set ws1 = Sheet11 'Archive
count = 0

lRow = ws.Range("B" & Rows.count).End(xlUp).Row

For J = 2 To lRow

    If ws.Range("P" & J).Value = "Recorded" Then
        count = count + 1
        ws.Range("B" & J, Range("K" & J)).copy
        ws1.Range("A" & count).PasteSpecial
    End If

Next J

Ответы [ 2 ]

1 голос
/ 24 января 2020

Вам просто нужно избавиться от второго «диапазона» и лишних скобок. Надеюсь, это поможет!

ws.Range("B" & J, "K" & J).Copy

Редактировать: Правописание

0 голосов
/ 24 января 2020

Вы пытаетесь установить объект рабочего листа, не ссылаясь на листы любого типа.

Как решить эту проблему:

set ws = Thisworkbook.Sheets("SheetName")

Также вам лучше использовать это:

 if ws.Range("P2").Offset(J-1) = "Recorded" then
'Rest of code goes here

.Offset имеет параметры RowOffset, ColumnOffset Это должно решить вашу проблему.

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