好的,我有一个excel工作簿,可以跟踪得分信息。 有12张,每月一张。 在这些床单上b2:b54包含办公地点。 F1:I1包含标题"审计1" "审核2"等等。
当图书打开时,用户表单会使用12个按钮进行初始化。 我将使用March作为我的榜样。当用户单击March按钮时,它会将它们带到March工作表。
March页面打开后,另一个userform初始化。
此用户表单包含2个列表框,1个文本框和一个提交按钮。
该想法是用户将从列表框1中的办公室位置中进行选择,该列表框将确定用于放置得分的行。
用户可以从列表框2中选择审核类型,这将决定将得分放入的列。
用户将在textbox1中输入分数,该分数将是输入所需的数据。
按下"提交"按钮,分数将被放置在所选办公室和审核类型的交叉点。
我一次尝试在这一件作品上工作。所以这是我的第一个问题:
我无法弄清楚如何将textbox1中的数据添加到包含listbox 1中的选择的行和包含选择列表框2的列的交集。
以下代码是我现在没有运气的尝试:
Private Sub Marsubmit_Click()
Dim MarR As String
Dim MarC As Integer
Dim M_A As String
Dim M_B As String
Dim M_S As String
Dim M_C As Range
Dim C As Integer
Dim R As Integer
R = 2
C = 2
M_S = Marscbx.Value
M_B = Formboxmar.Value
M_A = Officeboxmar.Value
MarC = 2
If M_B = ActiveSheet.Range("F1").Value Then MarC = MarC + 4
If M_B = ActiveSheet.Range("G1").Value Then MarC = MarC + 5
If M_B = ActiveSheet.Range("H1").Value Then MarC = MarC + 6
If M_B = ActiveSheet.Range("I1").Value Then MarC = MarC + 7
If M_A = ActiveSheet.Cell(C, R).Value Then MarR = "True"
If MarR = "True" Then M_C = ActiveSheet.Cell(C, MarC)
Do Until MarR = "True"
C = C + 1
Loop
ActiveSheet.Range(M_C).Value = M_S
答案 0 :(得分:0)
一个非常萎缩的例子。 ListIndex
表示ComboBox中所选项目的编号,从0开始。只需更改+1
即可到达正确的行/列。例如,如果Audit1进入F列,审计2到G,审计3到I,那么在ComboBox中进行审计写ComboBoxAudit.ListIndex + 6
。
Private Sub Marsubmit_Click()
Dim C1 As Integer
Dim C2 As Integer
Dim T1 As String
C1 = ComboBox1.ListIndex + 1
C2 = ComboBox2.ListIndex + 1
T1 = TextBox1.Value
Worksheets("Mar").Cells(C1, C2) = T1
End Sub