Excel VBA Userform全局计数器

我创build了一个VBA UserForm,其目的是允许用户更新该工作簿中的logging。 在初始化时,用户窗体在各种文本框中填入特定的单元格值,然后要求用户在其他文本框中添加某些信息,并在点击“下一步”button时,将新的信息添加到数据表格中,入口填充UserForm。

我目前通过保持当前行(currentRow)的计数来实现这一点,一旦点击“Next”button,currentRow = currentRow + 1。这工作正常。

我现在的问题是,如果特定单元格的值不同,我需要显示不同的用户窗体,例如:

If Range(Cells(currentRow, 3).Address).Value = "Planning" Then PlanningUserForm.Show Else ... rest of code ... 

这个工作,但是我一直在努力维护计数器,一旦这个新的PlanningUserForm初始化。 我需要知道currentRow的当前值,以便它可以在文本框中显示正确的单元格值。

我已经声明variablescurrentRow为Public,但它似乎并没有将价值转移到新的用户窗体中。 这可能吗? 还是我问太多的Excel?

非常感谢

马特

如果您将currentRow声明为public,则在PlanningUserForm ,可以以UserForm1.currentRow访问currentRow值,其中UserForm1是您声明currentRow为public的UserForm1表单

您可以随时使用registry。 今后它也可以用于许多其他的事情。

 SaveSetting "Your macro", "Values", "CurrentRow", currentRow 

现在currentRow保存在你的registry中。

现在在您的PlanningUserForm

 currentRow = GetSetting("Your macro", "Values", "CurrentRow") 

你从registry中获得了保存的值。

我对全局variables有不好的经验,这就是为什么我build议registry。