Выходы разные, хотя одни и те же ячейки выбираются разными способами для вырезания и вставки в vba? - PullRequest
1 голос
/ 05 февраля 2020

Ниже приведены мои коды, и я хочу вырезать и вставить диапазон ячеек. Код

Currentsheet.Range("F26:G26").Cut Destination:=Currentsheet.Range("F25:G25") 

дал мне правильный вывод и вставил диапазон ячеек, выбранных на каждом листе, от номера листа 2 до последнего номера листа, но код

Currentsheet.Range(Cells(26, 6), Cells(26, 6 + 1)).Cut Destination:=Currentsheet.Range(Cells(25, 6), Cells(25, 6 + 1))

удалось только вырезать и вставить диапазон ячеек на мой последний лист. Почему это так, хотя оба выбирают один и тот же диапазон ячеек для вырезания и вставки?

For sheetnumber = 2 To ThisWorkbook.Sheets.Count
    Set Currentsheet = ThisWorkbook.Sheets(sheetnumber)

    For Column = 4 To Currentsheet.Cells(11, Columns.Count).End(xlToLeft).Column
        If Currentsheet.Cells(25, Column) > 300 And Currentsheet.Cells(25, Column) < 500 Then
            Currentsheet.Rows(25).Insert shift:=xlShiftDown
            'Currentsheet.Range(Cells(26, 6), Cells(26, 6 + 1)).Cut Destination:=Currentsheet.Range(Cells(25, 6), Cells(25, 6 + 1))
            Currentsheet.Range("F26:G26").Cut Destination:=Currentsheet.Range("F25:G25")
        End If
    Next Column
Next sheetnumber

1 Ответ

2 голосов
/ 05 февраля 2020

Я не уверен, что понимаю

Currentsheet.Range(Cells(26, 6), Cells(26, 6 + 1))
Cells(26,6)

Этот диапазон Express означает «ActiveSheet.cells (26,6)». Поэтому лучше использовать его явно, например

Currentsheet.Range(Currentsheet.Cells(26, 6), Currentsheet.Cells(26, 6 + 1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...