我希望有人能指出我正确的方向:我想让列数(只有第 25 到 38 行)等于单元格 C24 中的数字。如果单元格 C24 包含 3,那么我希望列的总数为 3。我尝试了几种方法,单独添加新列没问题,但洗掉它们会使我的作业表崩溃。我尝试了下面的代码。
Sub adding()
If LastCol = Range("C24").Value Then
ElseIf LastCol < Range("C24").Value Then
Range("C25:C36").Select
Selection.Copy
Selection.Insert Shift:=xlToRight
ElseIf LastCol > Range("C24").Value Then
Range("D25:D36").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
End If
End Sub
uj5u.com热心网友回复:
试试下面的代码:
Sub Adding()
Dim col As Long, LastCol As Long
LastCol = Cells(25, Columns.Count).End(xlToLeft).Column - 2 'This auto finds last column using row 25.
col = Range("C24").Value
If LastCol < col Then
Range("C25:C36").Copy
Range("C25:C36").Resize(, Abs(LastCol - col)).Insert shift:=xlToRight
ElseIf LastCol > col Then
Range("D25:D36").Resize(, Abs(LastCol - col)).Delete shift:=xlToLeft
Else
'if equals do what you want
End If
Application.CutCopyMode = False
End Sub
基本上我们抓取初始范围(C25:C36 用于插入,D25:D26 用于洗掉)并使用该Resize
方法按列数扩展范围。我输入了最后一列的计算,但如果这不适合您,那么我们可以看看什么是正确的。因为它从 .CI 列减去 2 开始LastCol
。
我测验了它,它做了我相信你想要的,所以希望对你有用。让我知道。
0 评论