0

我想用VBA从用户那里获取输入的文件制作一个 excel 12或者3

  1. 打开文件时如何运行它xslm

  2. 假设我的文件中有这张表:

在此处输入图像描述

common data对于列A BC独特的内容很有用。我想使用下面的代码,所以取决于用户输入,它会从AB到唯一数据C 的地方选择A's唯一数据。我希望A 列的数据可重复使用以供将来使用,例如,如果用户将提供input_num=1,那么数据将是A's unique data

Sub main()
MsgBox ("welcome")

Dim input_num As Integer

input_num = InputBox(Prompt:="please select device", Title:="select device", Default:=3)

If input_num = 1 Then

    ' use the first column

ElseIf input_num = 2 Then

    ' use the second column

Else

    ' use the third column

End If

End Sub
4

1 回答 1

3
1. How can I run it while opening the xlsm file ?

2. Using the column based on User input

要在 Excel 文件启动时运行代码,您可以使用

Private Sub Workbook_Open()

End Sub

只要您的文件中启用了宏,您将放在这里的任何代码都将运行。例如,当您打开包含以下代码的文件时,您将看到一个消息框“Hello World”。

Private Sub Workbook_Open()
    MsgBox "Hello World"
End Sub

进入Workbook_Open()工作簿代码区域,如下面的屏幕截图所示

在此处输入图像描述

现在关于你的第二个问题

在 Excel 中,您不仅可以按名称引用列,还可以按数字引用列,例如

A列可以称为

Sheets("Sheet1").Columns("A:A")

或者

Sheets("Sheet1").Columns(1)

这使您的工作更轻松,因为您现在可以根据用户输入直接引用该列。例如

Private Sub Workbook_Open()
    MsgBox "welcome"

    Dim input_num As Variant

    input_num = InputBox(Prompt:="please select device", _
    Title:="select device", Default:=3)

    Select Case input_num
        Case 1, 2, 3
            With Sheets("Sheet1").Columns(Val(input_num))
                '
                '~~> Do what ever you want
                '
            End With
    End Select
End Sub
于 2012-09-24T16:21:20.037 回答