我写了一些代码,目的是在工作表“ main”上循环,从C列(Reg)中的单元格获取值,然后根据首字母移动到相关选项卡B列中相应单元格的名称。但是,有时(Reg)在其他任何选项卡上都不存在,当在其他任何相应选项卡中找不到(reg)时,我也无法解决该问题。< / p>
我尝试过在下一个错误goto上使用,但是当它从我不想让它查看的单元格中取回值时,最终只会在Loop中引起更多问题。我的VB实际上是基本的,所以我不确定如何更好地处理它,因为我的代码中有很多.select,而且我被告知我不应该使用它。
Sub comments_chase()
Dim comment, chase As String
Dim Reg As String
Dim reg_add As String
Dim Foundrange As String
Application.ScreenUpdating = False
Workbooks("Progression chases.xlsm").Activate
Worksheets("main").Activate
Range("C4").Select
Do Until ActiveCell.Value = ""
reg_add = ActiveCell.Address
Reg = ActiveCell.Value
ActiveCell.Offset(0, -1).Select
On Error GoTo Error_step
If Left(ActiveCell.Value, 1) = "L" Or Left(ActiveCell.Value, 1) = "M" Or Left(ActiveCell.Value, 1) = "N" Or Left(ActiveCell.Value, 1) = "O" Or Left(ActiveCell.Value, 1) = "P" Or Left(ActiveCell.Value, 1) = "Q" Then
Worksheets("Adie").Activate
Set Foundrange = Range("C:C").Find(Reg, LookAt:=xlWhole).Select
If Foundrange Is Nothing Then
GoTo Error_step
Else
ActiveCell.Offset(0, 11).Select
comment = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
chase = ActiveCell.Value
Workbooks("Progression chases.xlsm").Activate
Worksheets("main").Activate
Range("C:C").Find(Reg, LookAt:=xlWhole).Select
ActiveCell.Offset(0, 11).Select
ActiveCell.Value = comment
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = chase
End If
On Error GoTo Error_step
ElseIf Left(ActiveCell.Value, 1) = "A" Or Left(ActiveCell.Value, 1) = "B" Or Left(ActiveCell.Value, 1) = "C" Then
Worksheets("Andy").Activate
Set Foundrange = Range("C:C").Find(Reg, LookAt:=xlWhole).Select
If Foundrange Is Nothing Then
GoTo Error_step
Else
ActiveCell.Offset(0, 11).Select
comment = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
chase = ActiveCell.Value
Workbooks("Progression chases.xlsm").Activate
Worksheets("main").Activate
Range("C:C").Find(Reg, LookAt:=xlWhole).Select
ActiveCell.Offset(0, 11).Select
ActiveCell.Value = comment
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = chase
End If
On Error GoTo Error_step
ElseIf Left(ActiveCell.Value, 1) = "D" Or Left(ActiveCell.Value, 1) = "E" Or Left(ActiveCell.Value, 1) = "F" Or Left(ActiveCell.Value, 1) = "G" Or Left(ActiveCell.Value, 1) = "H" Or Left(ActiveCell.Value, 1) = "J" Or Left(ActiveCell.Value, 1) = "K" Then
Worksheets("Georgia").Activate
Set Foundrange = Range("C:C").Find(Reg, LookAt:=xlWhole).Select
If Foundrange Is Nothing Then
GoTo Error_step
Else
ActiveCell.Offset(0, 11).Select
comment = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
chase = ActiveCell.Value
Workbooks("Progression chases.xlsm").Activate
Worksheets("main").Activate
Range("C:C").Find(Reg, LookAt:=xlWhole).Select
ActiveCell.Offset(0, 11).Select
ActiveCell.Value = comment
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = chase
End If
On Error GoTo Error_step
ElseIf Left(ActiveCell.Value, 1) = "R" Or Left(ActiveCell.Value, 1) = "S" Or Left(ActiveCell.Value, 1) = "T" Or Left(ActiveCell.Value, 1) = "U" Or Left(ActiveCell.Value, 1) = "V" Or Left(ActiveCell.Value, 1) = "W" Or Left(ActiveCell.Value, 1) = "(" Or Left(ActiveCell.Value, 1) = "[" Or Left(ActiveCell.Value, 1) = "*" Then
Worksheets("Leona").Activate
Range("C:C").Find(Reg, LookAt:=xlWhole).Select
Foundrange = ActiveCell.Value
If Foundrange Is Nothing Then
GoTo Error_step
Else
ActiveCell.Offset(0, 11).Select
comment = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
chase = ActiveCell.Value
Workbooks("Progression chases.xlsm").Activate
Worksheets("main").Activate
Range("C:C").Find(Reg, LookAt:=xlWhole).Select
ActiveCell.Offset(0, 11).Select
ActiveCell.Value = comment
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = chase
End If
Error_step: Worksheets("main").Activate
Worksheets("main").Activate
Range(reg_add).Select
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub
上面的代码有2次稍微不同的尝试来处理它。展示我的尝试
我收到运行时错误424对象,并且在调试时它在块引用表(“ Leona”)中的“ If Foundrange Nothing Then”处停止
理想情况下,如果一切正常,我希望它在工作表(“ Leona”)上找到(Reg)并带回Comment和Chase中的值,然后将其放入工作表(Main)的相关单元格中< / p>
有人可以帮我解决问题吗?