excel - 用什么代替 .EntireColumn
问题描述
我正在尝试创建一个简单的计数表,它有 5 个按钮来增加每个字段的计数,一个“新一轮”按钮可以在新列(R2 等)中开始新一轮,以及清除所有按钮的清除按钮计数并从第 1 轮重新开始
到目前为止,我已经想出了这段代码:
Function rngLastRound() As Range
With Range("2:2").Cells(1, Columns.Count).End(xlToLeft)
Set rngLastRound = .EntireColumn
End With
End Function
Sub IncrementCurrentRoundOfRow(N As Long)
With rngLastRound
.Cells(N, 1).Value = Val(CStr(.Cells(N, 1).Value)) + 1
End With
End Sub
Sub IncrementCurrentRoundA()
Call IncrementCurrentRoundOfRow(3)
End Sub
Sub IncrementCurrentRoundB()
Call IncrementCurrentRoundOfRow(4)
End Sub
Sub IncrementCurrentRoundC()
Call IncrementCurrentRoundOfRow(5)
End Sub
Sub IncrementCurrentRoundD()
Call IncrementCurrentRoundOfRow(6)
End Sub
Sub IncrementCurrentRoundE()
Call IncrementCurrentRoundOfRow(7)
End Sub
Sub NewRound()
With rngLastRound.Offset(0, 1)
.Cells(2, 1).Value = "R" & (.Column - 1)
.Cells(3, 1).Resize(5, 1).Value = 0
End With
End Sub
Sub Clear()
Range("B2", rngLastRound).ClearContents
Call NewRound
End Sub
该代码工作正常,但它清除了整个列,这意味着总数和总计也被清除。如何通过不指定 .EntireColumn 属性而是指定特定范围来防止这种情况发生?
谢谢
解决方案
尝试将Set rngLastRound = .EntireColumn
rngLastRound () 函数中的行更改为Set rngLastRound = Application.Intersect (.EntireColumn, Rows ("2: 7"))
推荐阅读
- c - 为什么编译器在执行时将 0100 整数位作为 c 中的 64?
- python - 查找具有相同类名的多个表,Python webscraping
- html - 角度材料表,如何格式化输出
- python - 如何将str类型的矩阵转换为int类型
- c++ - 根据转换后的值查找最小元素
- vba - 根据幻灯片标签选择 Powerpoint 幻灯片并复制到新的演示文稿中
- python - 为什么函数可以在确定的范围内使用?
- android - 如何在 MaterialDatePicker 中打开之前选择的日期?
- vb.net - 你如何停止这种恼人的叮当声?
- java - 如何解决,调用 Mono
然后结果将用于另一个 Mono ,然后将返回 Mono ?