【发布时间】:2012-08-05 07:43:46
【问题描述】:
我有一个 Excel 表单,它从 80 行工作表的每一行中读取数据,并将每个单元格填充到一个文本框中。
初始表单的代码如下。
Private Sub UserForm_Initialize()
txtbox_revri_idnum.Text = Worksheets("Risk&Issues").Range("A4").Value
txtbox_revri_projname.Text = Worksheets("Risk&Issues").Range("B4").Value
txtbox_revri_isrefnum.Text = Worksheets("Risk&Issues").Range("C4").Value
txtbox_revri_riskrefnum.Text = Worksheets("Risk&Issues").Range("D4").Value
...
txtbox_revri_projname.SetFocus
End Sub
理想情况下,我想做的是当按下“下一个”按钮时,下一行(A5、B5、C5、D5...)被解析为一个数组,并且范围更新为下一行的数据。相反,“上一个”按钮将朝相反的方向移动(A3、B3、C3、D3...)。本质上,我想在工作表中上下导航,查看新文本框中每个单元格的整行。
我尝试过各种 VBA 组合(请记住,我是 VBA 新手,虽然有一些 Java 和 PHP 经验)。我的“下一步”按钮当前的代码如下所示。
Private Sub button_revri_next_Click()
txtbox_revri_idnum.Text = ActiveCell.Next.Text
...
End Sub
谢谢...我知道你们比我聪明多了!
【问题讨论】:
-
next_Click处理程序应该增加一个包含行号的变量,并调用一个函数来读取该行的单元格以填充文本框。prev_Click处理程序应该类似地递减变量。在initialize函数中,设置变量并调用填充例程。 -
问什么可能是一个愚蠢的问题,但我如何捕获变量中的行号?然后将其加入到字母中,例如B+row_num, C+row_num, ...