Копирование столбцов без шага - PullRequest
1 голос
/ 11 июля 2019

Проблема в том, что до определенного момента каждый столбец копируется вправо, а затем он внезапно начинает идти влево и игнорирует столбец.

Я не писал ничего,до сих пор не удалось его разорвать, чтобы даже попытаться решить его должным образом.Я возился с этим, но не получил никаких полезных результатов.

For colx = 2 To maxColumns Step 2
ActiveSheet.Columns(colx).Insert
ActiveSheet.Columns(colx - 1).Interior.Color = RGB(255, 153, 0)
Next

maxRows = ActiveSheet.UsedRange.Rows.Count
maxColumns = ActiveSheet.UsedRange.Columns.Count * 2 + 1

For colx = 2 To maxColumns Step 2
For iRow = 1 To maxRows
WorksheetFunction.CountA (Columns(1))
'If there is a comment, paste the comment text into column D and delete the original comment.
ActiveSheet.Cells(iRow, colx).Value = Trim(ActiveSheet.Cells(iRow, colx - 1).Value)
Next iRow
Next

Как вы можете видеть на изображении ниже, сумма аренды и сумма депозита сработали, хотя сумма депозитатакже в столбце AL, который должен иметь частоту аренды.Аналогично, столбец AT должен иметь «ТИП НЕДВИЖИМОСТИ», а AV должен иметь «ТИП МЕБЛИРОВАНИЯ» и т. Д. И т. Д. ...

enter image description here

1 Ответ

1 голос
/ 11 июля 2019

Замените весь код следующим образом:

Option Explicit


Sub Macro1()
Dim LCol As Long, LRow As Long, i as Long, j as Long
With ThisWorkbook.Worksheets("Sheet1")
    LCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    LRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    .Range("A1", .Cells(LRow, LCol)).Interior.Color = RGB(255, 153, 0)
    For i = 1 To (LCol*2 - 1) Step 2
        .Columns(i+1).Insert
        For j = 1 To LastRow
            .Cells(j, i+1).Value = Trim(.Cells(j, i).Value)
        Next j
    Next i
End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...