gpt4 book ai didi

excel - 替代 InputBox 中的 SendKeys 以选择用户输入最少的单元格

转载 作者:行者123 更新时间:2023-12-04 20:54:23 25 4
gpt4 key购买 nike

为了用户友好,我使用 SendKeys 方法和 InputBox,用于选择多个单元格以用于计算。

我想避免在单击每个单元格或按 Shift-F8 选择多个单元格时让用户按住 CTRL。

我希望 InputBox 弹出并选择不一定彼此相邻的单元格,而无需执行任何其他操作。

这是我所拥有的样本。

Sub CalculateIt()
Dim calcRange As Range
On Error Resume Next
SendKeys "+{F8}"
Set calcRange = Application.InputBox("Select the cells you would like to use.", Type:=8)
If Err.Number = 424 Then Exit Sub

Dim stuff As Double
For Each calcCell in calcRange
If IsNumeric(calcCell.Value) Then stuff = stuff + calcCell.Value
Next calcCell

MsgBox "The Solution: " & Sqr(stuff)
End Sub

我想避免使用 SendKeys 方法,因为我已经阅读了很多关于它挑剔和脆弱的信息,并且它可能会导致问题。我遇到了一些不起作用的情况,无论如何我必须按住 CTRL 或执行 Shift-F8。

最佳答案

可能的解决方案... 在工作表中添加一个复选框,然后进入 Microsoft Excel 对象 |在ThisWorkbook 窗口中输入以下代码。如果选中该复选框,那么当用户单击每个单元格时,您想要执行的任何公式都将是。

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim nbrCell As Double
If IsNumeric(ActiveCell.Value) Then nbrCell = ActiveCell.Value Else nbrCell = 0
If ActiveSheet.CheckBox1.Value = True Then ActiveSheet.Range("A1").Value = ActiveSheet.Range("A1").Value + nbrCell
End Sub

如果您担心用户可能不小心单击了错误的单元格并希望删除该值,您还可以添加第二个复选框以删除选定的单元格。

关于excel - 替代 InputBox 中的 SendKeys 以选择用户输入最少的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51447999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com