0

您好,我正在尝试将 Excel 中的以下代码转换为 VBA 用户表单输入修饰符:

例如,我知道如何对下面的所有列进行编码,除了 VBA 中的 C 列。

Name    Individual ID   Unique ID   First Name  Last Name   ID#
Charles Robol   CharlRobol  CharlRobol01    Charles Robol   01
Charles Robol   CharlRobol  CharlRobol02    Charles Robol   02
Charles Robol   CharlRobol  CharlRobol03    Charles Robol   03
Charles Robol   CharlRobol  CharlRobol04    Charles Robol   04
Charles Robol   CharlRobol  CharlRobol05    Charles Robol   05
Charles Robol   CharlRobol  CharlRobol06    Charles Robol   06


 =B4&TEXT(COUNTIF($B$2:$B4,$B4),"00")

B 列本质上是不同的唯一值,其中第一次出现值时添加 01,然后添加 02,依此类推。此功能的目的是便于确定条目是否为原始条目,如果不是原始条目,则我希望用户表单自动具有与前一个同名条目关联的值。

我知道我可以这样做:

  1. 将上述 if 函数的计数转换为 VBA 组合框代码/行源?/控制源?(最理想的,因为这样可以保证条目在用户表单中正确更新

  2. 以某种方式引用 Excel 逻辑使用上述函数的单元格,例如,excel 函数位于 (Sheet1!ActiveCell.Row, 3)

在我自己解决问题之前,我显然不了解 VBA 和 excel 逻辑和语法,以便能够在不学习一般 VBA 编码的情况下弄清楚这些东西。

非常感谢任何帮助。

4

1 回答 1

0

这正是在 Access 中更好处理的事情,但我意识到您可能对 Excel 解决方案更感兴趣。您实际上可以直接将该公式转换为 VBA,因为您可以通过Application.WorksheetFunctions如下方式调用工作表函数:

Range("C4") = Range("B4") & Application.WorksheetFunction.Text(Application.WorksheetFunction.CountIf(Range("B2:B4"), Range("B4")), "00")

我把它作为练习留给你,让你将代码包装在一个函数中并概括它以适用于你的情况,但如果你遇到麻烦,请留下评论。

于 2014-01-02T16:03:06.163 回答