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中检查两个值是否为空,然后是保存文件被禁用,而Refreshbutton。 主文件存储一个类似的Workbook_BeforeSave,用于检查必填字段。