首页 文章

使用VBA提示用户选择单元格(可能在不同的工作表上)[重复]

提问于
浏览
11

这个问题在这里已有答案:

我正在使用Excel上的VBA项目,并希望我的部分宏提示用户选择一系列单元格*,宏可以在以后进行处理 .

*创建图表或使用GUI插入函数时获得的提示类型

例如这里:
Screengrab showing required functionality - the Excel 'Sum' Function Arguments pop-up

在这里:
Screengrab showing required functionality - the Excel Function Arguments pop-up

我在那里寻找类似的东西

Sub MyMacro()
    MsgBox "Please select data range"

    ' allow user to select range (as images above)
    CreateFunctionArgumentsPrompt()    

    'do stuff with user selected range of cells
    ...
End Sub

是否可以访问内置的Excel功能来执行我所指的: CreateFunctionArgumentsPrompt()

注意:这类似于SO问题excel vba get range of user selected range by mouse但不同之处

  • 我想使用Excel的内置GUI功能,如上所示

  • 我需要能够选择并引用活动工作表以外的工作表上的范围

2 回答

  • 21

    这不是使用您在上面显示的内置,但允许您在收入提示后选择一系列单元格:

    Sub RangeSelectionPrompt()
        Dim rng As Range
        Set rng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8)
    
        MsgBox "The cells selected were " & rng.Address
    End Sub
    

    这是基于this MrExcel answer中给出的答案 .

    以下是它的外观:

    enter image description here

  • 0

    您正在寻找的是一个对话框(也称为通用对话框) . 不幸的是你cannot add one to the existing built in objects(至少不使用VBA) .

    如上所述,您可以使用InputBox和Forms模仿此功能 . 这就是说我见过基于Excel的专有程序,公司在那里添加了你描述的功能类型 . 但是,我相信您必须使用C或更深层次的语言来创建可以实现此目的的DLL

    关于对话框有一点值得注意:Excel内置了Common File Dialog object library,它允许您使用现有的Windows API对话框创建公共文件服务器对话框(如打开,保存和选择) .

相关问题