使用消息框输出作为变量作为VBA代码的输入

问题描述 投票:0回答:1

下面的代码在第四行不起作用。如果有人可以帮助您。我想使用输入框中的信息来输入VBA代码。如果消息框显示b25,我希望它复制b25中的数据并将其粘贴到另一张纸中,如下所示。

谢谢

Sub MsgBoxYesNoCancel()

    input_Cells = InputBox("Input column")
    MsgBox "Want to Continue?", vbYesNoCancel
    input_Celli = InputBox("Input row number")

    ActiveSheet.Range("'input_Cells' & 'input_Celli'").Copy
    Worksheets("ACV").Activate
    Range("G36").PasteSpecial xlPasteValues  

End Sub
vba variables messagebox
1个回答
0
投票

这是@BigBen建议的实现。您可以输入单元格引用,也可以单击一个单元格或范围。请注意,如果用户单击“取消”按钮,并且该代码允许在这种情况下从宏中退出,则会发生错误。

Sub CopyToG36()

    Dim Source      As Variant          ' range to copy from

    On Error Resume Next
    Set Source = Application.InputBox("Select the source data", "Transfer data", Type:=8)
    If Err.Number = 0 Then
        Source.Copy Destination:=Cells(36, "G")
    End If
End Sub

上述思想的逻辑扩展是根本没有InputBox。您可以简单地选择要复制的内容并运行宏。对于该操作,单行代码就足够了。试试吧。

Sub CopyToG36_2()
    Selection.Copy Destination:=Cells(36, "G")
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.