【发布时间】:2017-06-11 08:35:14
【问题描述】:
好的,伙计们,我有一个跟踪得分信息的 Excel 工作簿。 有12张,每个月一张。 在这些表中,b2:b54 包含办公地点。 F1:I1 包含标题“审计 1”“审计 2”等等。
当这本书打开时,一个用户窗体初始化为月份的 12 个按钮。 我将以三月为例。当用户单击 March 按钮时,它会将他们带到 March 表。
March 表单打开后,另一个用户窗体会初始化。
此用户表单包含 2 个列表框、1 个文本框和一个提交按钮。
这个想法是用户将从列表框 1 中选择办公室位置,这将确定放置分数的行。
用户可以从列表框 2 中选择审核类型,这将确定放置分数的列。
用户将在 textbox1 中输入分数,这将是输入所需的数据。
按下“提交”按钮后,分数将放置在所选办公室和审核类型的交点处。
我正在尝试一次完成一件。所以这是我的第一个问题:
我不知道如何将 textbox1 中的数据添加到包含来自列表框 1 的选择的行与包含选择列表框 2 的列的交点。
以下代码是我目前正在尝试的,没有运气:
Private Sub Marsubmit_Click()
将 MarR 调暗为字符串
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
【问题讨论】:
-
现在不能更接近您的问题,但是只有一个用户窗体和三个组合框(月份、位置、审计)、输入和提交不是更容易吗?当然,您应该将
ActiveSheet更改为Worksheet(ComboMonth.value)或类似名称。如果没有其他回复,我会稍后再试。 -
@CMArg 我分离用户表单的原因是,一旦我让这部分工作并了解更多关于 vba 的知识,我计划向选择用户表单的用户表单添加一些额外的项目和功能月。在您看来,vba 是一种很好的学习第一语言吗?我也在涉足一点 c# 和 c++,但到目前为止,vba 对我来说是最容易理解的。我对此很陌生,所以任何建议都将不胜感激。
标签: vba excel listbox userform