值写入单元格时,VBA停止运行

我正在组织一张有组织的表格。 这个代码在单元格标记的行完成时停止。 你能帮助我继续循环吗?

Private Sub CommandButton1_Click() Dim sh As Worksheet Dim sh7 As Worksheet Dim CNAME As String Set sh = Worksheets("Sheet6") Set sh7 = Worksheets("Sheet7") lr = sh.Cells(Rows.Count, 1).End(xlUp).Row For n = 1 To lr If InStr(1, sh.Cells(n, 1), "CALL:") = 1 Then CNAME = sh.Cells(n, 7).Value Ci = sh.Cells(n + 1, 7).Value Cpd = sh.Cells(n + 1, 7).Value Else If InStr(1, sh.Cells(n, 1), "Topic:") = 1 Then T = sh.Cells(n, 2) Tpd = sh.Cells(n + 1, 2) Types = sh.Cells(n + 4, 2) DM = sh.Cells(n + 5, 2) D = sh.Cells(n + 5, 4) OD = sh.Cells(n + 6, 2) lr7 = sh7.Cells(Rows.Count, 1).End(xlUp).Row sh7.Cells(lr7 + 1, 1).Value = CNAME '********This is the last line it runs. sh7.Cells(lr7 + 1, 2).Value = Ci sh7.Cells(lr7 + 1, 3).Value = Cpd sh7.Cells(lr7 + 1, 4).Value = T sh7.Cells(lr7 + 1, 5).Value = Tpd sh7.Cells(lr7 + 1, 6).Value = Types sh7.Cells(lr7 + 1, 7).Value = DM sh7.Cells(lr7 + 1, 8).Value = D sh7.Cells(lr7 + 1, 9).Value = OD End If End If Next n End Sub 

你应该养成定义所有variables和提供默认值的习惯。

编辑:看来我原来的结论是不正确的。 经过进一步的检查,我发现代码中可能存在什么问题。 无论您尝试获取最后一行,您都使用Rows.Count作为参数。

也许改变这些

 lr = sh.Cells(Rows.Count, 1).End(xlUp).Row lr7 = sh7.Cells(Rows.Count, 1).End(xlUp).Row 

对此(请注意,我在第一个参数中使用sheetvariables)

 lr = sh.Cells(sh.Rows.Count, 1).End(xlUp).Row lr7 = sh7.Cells(sh7.Rows.Count, 1).End(xlUp).Row