Расширить / уменьшить столбцы на основе значения ячейки через VBA - PullRequest
0 голосов
/ 25 февраля 2019

Я хотел бы добавить столбцы автоматически на основе значения ячейки на другом листе.Например, если значение ячейки говорит 25, я бы хотел, чтобы столбцы (включая формулы / формат) были расширены, чтобы вставить еще 3 столбца после 22.

Если значение ячейки изменится на 20, я быКак удалить последние два столбца.

Есть ли способ сделать это в VBA?Я полагаю, что может потребоваться какой-то тип кнопки обновления, если нет другого способа сделать это событием изменения?

Заранее спасибо!

Вот пример

Sub AddCols()

Dim lastColumn As Long

lastColumn = ActiveSheet.Cells(5, Columns.Count).End(xlToLeft).Column
'lastColumn.Select

Cells(5, lastColumn + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

End Sub

РЕДАКТИРОВАТЬ: я пробовал следующий код ниже, но он постоянно дает мне ошибку, когда происходит событие изменения.

colCount = Worksheets("Sheet2").Rows(1).End(xlToRight).Column
checkCell = Worksheets("Sheet1").Range("A1").Value

If checkCell > colCount Then
    cellDiff = checkCell - colCount
    Range(Columns(colCount + 1), Columns(colCount + cellDiff)).Insert Shift:=xlToRight
    Range(Cells(1, ColCount), Cells(lRow, ColCount)).AutoFill Destination:=Range(Cells(1, ColCount), Cells(lRow, ColCount + cellDiff)), Type:=xlFillDefault
Else
    cellDiff = colCount - checkCell
    startCol = colCount - cellDiff + 1
    Range(Columns(startCol), Columns(colCount)).Delete Shift:=xlToLeft
End If

1 Ответ

0 голосов
/ 26 февраля 2019

Небольшой пример, который поможет вам на вашем пути ...

dim lastcolumn as long, k as long
with sheets(1)
    lastcolumn = .cells(5,.columns.count).end(xltoleft).column
    if sheets(2).cells(1,1).value <> lastcolumn then k = sheets(2).cells(1,1).value - lastcolumn
    select case k
        case >0
            'insert columns
        case <0
            'remove columns
        case is 0
            'do nothing
    end select
end with       

Edit1:

Исправлена ​​ссылка на последний столбец вместо .rows.count.columns.count

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