Excel VBA – macros循环直到lastrow

我有Sheet3上的以下代码(我在Sheet4上有一个类似的代码),这是逐行工作。

Sub Checker(argi As Long) If (Range("B" & argi).Text = "Insert") Then Call Tiers_1_to_3(argi) Call CI_Desc(argi) Call Tiers_Desc(argi) Call Site(argi) Call Support_Group_2(argi) Call Support_Group_3(argi) Call Product_Name(argi) Call Model_Name(argi) Call Mgmt_Components(argi) Call ITSM_Group(argi) Call Only_Values(argi) Call MandatoryColors(argi) End If Range("F" & argi + 1).Select End Sub 

这是更大的一部分,这个子'检查'包含所有的主要代码工作的子例程; 由于这是逐行运行,我想从“ThisWorkbook”工作表上的一个button。

我已经提出了几个解决方法,但我无法这样做。

 Sub Refresh() Dim i As Long Dim LastRow As Long LastRow = Range("B" & Rows.Count).End(xlUp).Row For Each i In Range("F" & LastRow) Call Sheet4.Checker Next i End Sub 

工作表安排如下:

Sheet_Portal :使用快捷方式自动填充用户窗体到Sheet3和Sheet4。

Sheet3 :带Checker变体的数据input表1。

Sheet4 :带有Checker变体的数据input表2。

这个工作Thisworkbook :这是我存储所有的共享信息,如触发检查1和2的button。

长话短说,我希望你的一些权力来帮助我解决这个问题。

更新#1

在您的评论之后,我能够创build一个触发代码的button

 Sub Refresh() Dim i As Long Dim LastRow As Long LastRow = Range("B" & Rows.Count).End(xlUp).Row For i = 5 To LastRow Call Sheet4.Checker(i) Next i End Sub 

请检查主代码@ EXCEL VBA – 在子程序中增加长值

更新#2

请检查我使用过的床单以及如何pipe理

工作簿安排

下面的ThisWorkbook代码

 Private Sub Workbook_Open() Worksheets("Version Control").Activate MainPortal.Show vbModeless End Sub Private Sub UserForm_Click() MainPortal.Show vbModeless End Sub Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim i As Long Dim LastRow As Long LastRow = Range("B" & Rows.Count).End(xlUp).Row For i = 5 To LastRow If ActiveSheet.Range("B5").Value > 1 Then If ActiveSheet.Range("BV" & i).Value = "" Then Cancel = True MsgBox "Please complete all mandatory values" Exit Sub Else End If End If Next i End Sub Sub Refresh() Dim i As Long Dim LastRow As Long LastRow = Range("B" & Rows.Count).End(xlUp).Row For i = 5 To LastRow Call Sheet4.Checker(i) Next i End Sub 

ThisWorkbook存储一个Workbook_Open,用于在文件开始时打开一个userForm及其主要button,一个Workbook_BeforeSave中检查两个值是否为空,然后是保存文件被禁用,而R​​efreshbutton。 主文件存储一个类似的Workbook_BeforeSave,用于检查必填字段。