Excel 使用组合框选择目标单元格,将数据从UserForm推送到指定工作表上的特定单元格

Excel 使用组合框选择目标单元格,将数据从UserForm推送到指定工作表上的特定单元格,excel,vba,loops,combobox,userform,Excel,Vba,Loops,Combobox,Userform,这是一个冗长的标题,但希望是一个简单的修复,所以谢谢你的来访 我有一个带有组合框的用户表单(用于不同的员工、月份和日期)和一个文本框(用于节假日的小时数) 表单包含10个月和日的组合框,允许多个条目(这都与我承诺的问题相关)。 我想将文本框中输入的数据发送到由3个组合框选择指定的单元格。目标工作表都是相同的布局(每个员工1个)列标题是月,行是天(编号) 我从一个旧项目中得到了一个代码,它执行了类似的操作,我想经过一些调整它会工作的,我知道其中有错误,但是如果有一些指针可以让它工作的话,那就太棒了

这是一个冗长的标题,但希望是一个简单的修复,所以谢谢你的来访

我有一个带有组合框的用户表单(用于不同的员工、月份和日期)和一个文本框(用于节假日的小时数) 表单包含10个月和日的组合框,允许多个条目(这都与我承诺的问题相关)。 我想将文本框中输入的数据发送到由3个组合框选择指定的单元格。目标工作表都是相同的布局(每个员工1个)列标题是月,行是天(编号)

我从一个旧项目中得到了一个代码,它执行了类似的操作,我想经过一些调整它会工作的,我知道其中有错误,但是如果有一些指针可以让它工作的话,那就太棒了,我列出了一些注释来最好地描述我的意图,此外,我不确定LastRow是否是最佳选择,但不知道其他选择(我认为范围?):

Private Sub CommandButton3_Click()

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.DisplayStatusBar = False

    Dim LastRow As Long
    Dim ComboDay As String
    Dim ComboMonth As String
    Dim I As Integer

'Open up sheet for data entry

    'Dim WBK As Workbook

        'Set WBK = Workbooks.Open(".xlsm")

    'Windows(".xlsm").Activate


    Dim ws As Worksheet
      If ws.Name = UserForm1.ComboBox1.Text Then
     End If

            LastRow = ws.Range("C" & Rows.Count).End(xlUp).Row       'LastRow for the loop


'Identifying date and time
ComboDay = UserForm1.ComboBox2.Text            'day number from Combobox
ComboMonth = UserForm1.ComboBox3.Text           'Month selected in the ComboBox

For I = 1 To LastRow
    If (ws.Range("C" & I).Text = ComboDay) And (ws.Range("D" & I).Text = ComboMonth) Then  'I know D range in ComboMonth is wrong - this is part of the old code which looked in two columns for date and time- how can this be changed to look across the columns (which are in row 16 on the sheet currently)
        ws.Range("ComboDay", "ComboMonth" & I).Value = TextBox1.Text 'this is my basic attempt to illustrate how i want the code to look for the cell which is defined by the comboboxes
        ws.Range("G" & I).Value = TextBox2.Text ' these below are all the old code - combo boxes on the form are all odd numbers from 3-21 for month and day are even from 2-20
        ws.Range("I" & I).Value = TextBox3.Text
        ws.Range("K" & I).Value = TextBox4.Text
        ws.Range("M" & I).Value = TextBox5.Text
        ws.Range("O" & I).Value = TextBox6.Text
        ws.Range("Q" & I).Value = TextBox7.Text
        ws.Range("S" & I).Value = TextBox8.Text
        ws.Range("U" & I).Value = TextBox9.Text
        ws.Range("Z" & I).Value = TextBox10.Text
    End If
Next I

Application.DisplayStatusBar = True
Application.DisplayAlerts = True
Application.ScreenUpdating = True


End Sub