vba Excel 用户表单组合框选择工作表以将值放入

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/17599481/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-11 22:10:05  来源:igfitidea点击:

Excel userform combo box select sheet to put values in

excelvbaexcel-vbams-office

提问by Zach Roberts

Hi i am trying to program a user form in excel that a user inputs the information and can select the worksheet that they want the information that was entered in to go to that spread sheet.

嗨,我正在尝试在 excel 中编写一个用户表单,用户可以输入信息,并且可以选择他们希望输入的信息转到该电子表格的工作表。

This is what i have so far.

这是我到目前为止。

Dim iRow As Long
Dim sheet As String

sheet = ComboBox1.Value
Worksheets(sheet).Activate

iRow = sheet.Cells.Find(what:="*", seatchOrder:=xlRows, searchdirection:=xlPrevious, LookIn:=xlValues).Row + 1

when i run the user form and select the worksheet in the combo box and hit the command button to run the form i get the error "invalid qualifier"

当我运行用户表单并在组合框中选择工作表并点击命令按钮运行表单时,我收到错误“无效的限定符”

it highlights sheet.cells

它突出显示 sheet.cells

here is the entire code if it helps:

如果有帮助,这里是整个代码:

    Private Sub ComboBox1_Change()

End Sub

Private Sub CommandButton1_Click()
'get item button

Dim sheet As String
UserForm8.Hide

MsgBox ("Select an item to update")

sheet = ComboBox1.Value
Worksheets(sheet).Activate

Set ProjRng = Application.InputBox(Message, Title, "", 377, 58, , , 8)
    ProjSel = ProjRng.Cells.Row


Label1.Enabled = True
Label2.Enabled = True
Label3.Enabled = True
Label4.Enabled = True
Label8.Enabled = True
Label10.Enabled = True
TextBox1.Enabled = True
TextBox2.Enabled = True
TextBox3.Enabled = True
TextBox4.Enabled = True
TextBox8.Enabled = True
TextBox10.Enabled = True
TextBox10.Locked = False
CommandButton1.Enabled = True
ComboBox1.Enabled = True





UserForm8.TextBox1.Value = ActiveSheet.Cells(ProjSel, 1).Value
UserForm8.TextBox2.Value = ActiveSheet.Cells(ProjSel, 2).Value
UserForm8.TextBox3.Value = ActiveSheet.Cells(ProjSel, 3).Value
UserForm8.TextBox4.Value = ActiveSheet.Cells(ProjSel, 4).Value
UserForm8.TextBox8.Value = ActiveSheet.Cells(ProjSel, 8).Value
UserForm8.TextBox11.Value = ActiveSheet.Cells(ProjSel, 6).Value
    UserForm8.Show



End Sub

Private Sub CommandButton2_Click()
'Update button to update the remaing quantity amount

Dim iRow As Long
Dim sheet As String

sheet = ComboBox1.Value
Worksheets(sheet).Activate

iRow = sheet.Cells.Find(what:="*", seatchOrder:=xlRows, searchdirection:=xlPrevious, LookIn:=xlValues).Row + 1

With Worksheets("ChemLog")
    .Cells(iRow, 6).Value = Me.TextBox12
End With


With sheet
    .Cells(iRow, 1).Value = Me.TextBox1.Value


end with    

    'continue above with columns according to log








End Sub






Private Sub TextBox10_Change()


End Sub

Private Sub TextBox11_Change()

End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
ComboBox1.AddItem ("Standards")
ComboBox1.AddItem ("Acids,Bases, and Buffers")
ComboBox1.AddItem ("Solvents and Flammables")

End Sub

回答by Andy G

As well as the spelling error, sheetis a string, so it requires:

以及拼写错误,sheet是一个字符串,所以它需要:

Worksheets(sheet).Cells.Find(..

which is the reason for the specific error message you receive.

这就是您收到特定错误消息的原因。