Переместить вниз на одну строку все ячейки из одного столбца (смещение) - PullRequest
0 голосов
/ 27 декабря 2018

Я хотел бы переместить на одну строку вниз все ячейки из столбца (в моем случае столбец C).Это означает, что если в ячейке C1 написано «X», оно должно перейти в ячейку C2, если в ячейке C1000 указано «Y», то оно должно перейти в ячейку C1001…

У меня есть следующеесообщение об ошибке:

Ошибка времени выполнения 1004, ошибка приложения или объекта *

Sub movedownrowcolumnC()    
    Range("C:C").Offset(1).Select
End Sub

Ответы [ 4 ]

0 голосов
/ 27 декабря 2018

Вы просили об этом?

Range("C1").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
0 голосов
/ 27 декабря 2018

Вы можете:

Option Explicit

Sub Test()

    With ThisWorkbook.Worksheets("Sheet1")
        If .Range("C1").Value = "Test" Then
           .Rows(.Range("C1").Row + 1).Select
        End If
    End With

End Sub
0 голосов
/ 27 декабря 2018

попробуйте ниже макроса.

Sub MoveDowncolumn()
Dim lastRow As Integer
With Worksheets("Sheet1")
lstrow = .Cells(Rows.Count, "C").End(xlUp).Row
For i = lstrow To 1 Step -1
.Cells(i + 1, "C").Value = .Cells(i, "C").Value
Next i
End With
End Sub
0 голосов
/ 27 декабря 2018

use:

Cells(Rows.Count, "C").End(xlUp).Offset(1).Select

, хотя вам, скорее всего, ничего не нужно Select, а просто используйте переменную Range:

Sub movedownrowcolumnC()
    Dim myRange As Range
    Set myRange = Cells(Rows.Count, "C").End(xlUp).Offset(1)

    myRange.Value = "myValue"
End Sub

Хотя это намного больше, чемпросто «хорошая практика кодирования» - это всегда явно указывать объект Range до его Worksheet ссылки:

Sub movedownrowcolumnC()
    Dim myRange As Range

    With Worksheets("mySheetName") ' reference wanted worksheet (change "mySheetName" to your actual relevantsheet name)
        Set myRange = .Cells(.Rows.Count, "C").End(xlUp).Offset(1) ' ser referenced worksheet column C cells right below last not empty one
    End With

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