我想与VBA
文件合作,获取用户1
,2
或3
的输入:
如何在打开xslm
文件时运行它?
假设我的文件中有这个表:
common data
对列A
B
和C
唯一内容非常有用。
我想使用下面的代码,因此取决于用户输入,它会从A
,B
或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
答案 0 :(得分: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