我正在做一个宏来计算从给定范围(起始单元格到结束单元格)的单元格值并迭代单元格,直到找到一个空单元格(没有值)。
所以工作流程应该是:
它还应该从活动单元格中获取值并在更改列时计算总和(现在它只是一个想法,而不是主要问题)。
我所遇到的问题是,允许用户选择结束,当它到达结束单元时,我会停止循环。
这是我到目前为止所做的事情(注意:输入上没有错误处理,稍后再添加):
Sub test01()
Dim startCell As Variant
Dim endCell As Variant
Range("A1").Select ' Starting cell position
startCell = Application.InputBox("A", "A", , , , , Type:=8) 'Start of range
endCell = Application.InputBox("B", "B", , , , , Type:=8) 'End of range
Do
If IsEmpty(ActiveCell) Then
ActiveCell.EntireColumn.Select
ActiveCell.Offset(0, 1).Select
Else
'Calculate data
ActiveCell.Offset(1, 0).Select
If ActiveCell.Column And ActiveCell.Row = endCell Then
Exit Do
End If
End If
Loop
End Sub
对我做错了什么以及如何改进它的任何消息?谢谢:))
PS。新的vba。
答案 0 :(得分:0)
业务逻辑有点不清楚,因此根据最佳猜测,解决方案可能如以下Excel VBA代码段所示:
Sub test01()
Dim startCell As Variant
Dim endCell As Variant
'Range("A1").Select ' Starting cell position
startCell = Application.InputBox("A", "A", , , , , Type:=8).Address 'Start of range
endCell = Application.InputBox("B", "B", , , , , Type:=8).Address 'End of range
Range(startCell).Activate ' Starting cell position instead of "A1"
Do
If IsEmpty(ActiveCell) Then
ActiveCell.EntireColumn.Select
ActiveCell.Offset(0, 1).Select
Exit Do
Else
'Calculate data
ActiveCell.Offset(1, 0).Select
If ActiveCell.Address = endCell Then
Exit Do
End If
End If
Loop
End Sub
希望这可能会有所帮助。