我正在尝试将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然后是第四次。此功能的目的是为了便于确定条目是否是原始条目,如果不是原始条目,那么我希望userform自动具有与前一个相同名称条目相关联的值。
我知道我可以这样做:
将上面的函数转换为VBA组合框代码/ rowsource?/ controlsource? (最理想,因为这样可以保证条目在userform中正确更新
以某种方式引用Excel逻辑使用上述函数的单元格,其中excel函数位于(Sheet1!ActiveCell.Row,3)
我显然不理解VBA和excel逻辑和语法能够在不仅仅研究一般VBA编码的情况下解决这个问题,直到我自己解决问题。
非常感谢任何帮助。
答案 0 :(得分:0)
这正是Access中更好处理的事情,但我意识到您可能对Excel解决方案更感兴趣。您实际上可以直接将该公式转换为VBA,因为您可以通过Application.WorksheetFunctions
调用工作表函数,如下所示:
Range("C4") = Range("B4") & Application.WorksheetFunction.Text(Application.WorksheetFunction.CountIf(Range("B2:B4"), Range("B4")), "00")
我把它作为练习让你将代码包装在一个函数中并将其概括为适用于你的情况,但如果你遇到麻烦就放弃评论。