我叫 Arno,居住在法国,我是 stackoverflow 的普通用户,我通常会在那里找到很多答案。 但这一次我陷入了困境......我熟悉制作打印、导出 PDF 并记录在数据库中的用户表单,这次我希望我的培训师将培训信息记录在数据库中。 您肯定会说,在 Excel 工作表中直接输入日期值很简单。但用户表单实际上还有其他字段需要填写,并将导出为 PDF 格式的培训证书(以避免越来越多的纸张)。这就是我使用用户表单的原因。
我有一个命令按钮“记录训练”,它会触发下面的紫色用户表单。我希望这个USF的一些数据被记录在你在左边看到的数据库中。它们是带有已定义列表的组合框(日期除外)。
首先,我需要定位“Peter”和代码“B”交叉处的单元格。据我了解,我需要找到我的 USF 的“NAME”字段的值与列出所有名称的行之间的匹配项。代码相同(“CODE”字段值与列之间的匹配
然后我需要确定该行和列的交集,这就是我想要写入usf的“DATE”字段值的地方。
最后,根据“MARK”字段的值(可以是“好”、“待审核”或“不好”),包含日期的单元格的颜色将有 3 种可能的不同颜色。最终结果将是第二个带有日期和颜色的表格,一切都很好。
我不知道如何找到表格的交叉单元格并将日期放入其中,并且我不知道如何修复最终目标单元格的颜色。
我也没有代码可以建议,但工作表可以是“sheet1”,组合框可以在你的建议中命名为 cbDate、cbName、cbCode 等。
非常感谢您的帮助。
现在我的代码基于蒂姆建议我的“类似”,我发现它非常接近我试图实现的目标。
私有子cbRecord_Click()
暗淡员工作为变体 员工 = cbName.Value
将工作表变暗 设置 sht = Worksheets("TrainingSheet")
Dim CodeColumn '变体作为默认值 设置 CodeColumn = Application.Match(cbCode.Value, sht.Range("B:B"), 0)
Dim NameLine '变体作为默认值 设置 NameLine = Application.Match(employee, sht.Range("C2:H2"), 0)
将日期调暗为字符串 日期 = tbDate.Value
If IsError(NameLine) then MsgBox "抱歉,在工作表中未找到员工": Exit Sub 如果 IsError(CodeColumn) 那么 MsgBox“在工作表中找不到训练代码”:Exit Sub
WorksheetFunction.Index(NameLine, CodeColumn).Value = thedate
结束子
我现在在“设置 CodeColumn 和 NameLine”错误 13 类型不兼容上出现错误,我不知道它来自哪里。
我查看了英语和法语网站,尝试了“application.workfunction.Match”(没有成功),将表值设置为文本、数字等(没有成功),更改了变体类型等。总是出现相同的错误.
您可以帮忙吗? 非常感谢。 阿诺