Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vba Excel在用户输入时执行_Vba_Excel - Fatal编程技术网

vba Excel在用户输入时执行

vba Excel在用户输入时执行,vba,excel,Vba,Excel,我正在为Excel编写VBA脚本,但遇到了一些问题。我试图做的是让用户选择一组列进行合并。因此,我将在循环中使用Application.InputBox将列标题存储为一个范围,然后使用该范围格式化concatonate公式 例如:用户希望按该顺序合并列d、E、a的内容。InputBox将继续出现,直到用户单击cancel,将列标题(如d1、e1、a1)的范围存储在一个数组中,我可以从中构建concatonate语句 我花了一段时间来研究这个问题,我很困惑。我的第一个障碍是,当InputBox返回

我正在为Excel编写VBA脚本,但遇到了一些问题。我试图做的是让用户选择一组列进行合并。因此,我将在循环中使用Application.InputBox将列标题存储为一个范围,然后使用该范围格式化concatonate公式

例如:用户希望按该顺序合并列d、E、a的内容。InputBox将继续出现,直到用户单击cancel,将列标题(如d1、e1、a1)的范围存储在一个数组中,我可以从中构建concatonate语句

我花了一段时间来研究这个问题,我很困惑。我的第一个障碍是,当InputBox返回false时,我似乎无法得到一个while循环,用户按cancel键时该循环结束


任何帮助都将不胜感激。有一个基于C的背景,我真的很难使用VBA…

即使您没有提供任何代码,也要尝试这样做

Dim concatCells()
Dim i As Integer
i = 0

msgselect = MsgBox("Please select the cell you wish to concatenate.", vbOKCancel)

Do While msgselect = vbOK
    i = i + 1
    ReDim Preserve concatCells(i)
    concatCells(i - 1) = Application.InputBox("select cell", Type:=8)
    msgselect = MsgBox("Please select the cell you wish to concatenate.", vbOKCancel)
Loop

Dim rangeToConcat As String
For i = 0 To UBound(concatCells)
    rangeToConcat = rangeToConcat & concatCells(i)
Next i
Range("A1").Formula = rangeToConcat

做些努力/展示你的代码我对代码的缺失表示歉意。我有几种方法可以做到这一点:我对缺少代码表示歉意。在发布之前我确实给了它一些时间——我应该分享我的代码。我会在以后的帖子中留心以显示我的努力。谢谢你的提醒!如果您想让它完成完整的列,您需要将我的for循环嵌套在另一个从第1行开始到最后一行的for循环中。非常好-谢谢。再次为缺少代码而道歉。谢谢你的帮助。