Excel宏错误运行时错误

Excel宏错误运行时错误,excel,vba,Excel,Vba,在“do stuff”部分,我发现以下代码出现运行时错误。附件是文件-我在“控制”选项卡上单击“检索记分卡”时出错 试着用替换'do stuff后面的4行 wScorecard.Cells(5, 2).Value = wData.Cells(iSel, 1).Value wScorecard.Cells(7, 2).Value = wData.Cells(iSel, 2).Value wScorecard.Cells(8, 2).Value = wData.Cells(iSel, 3).Valu

在“do stuff”部分,我发现以下代码出现运行时错误。附件是文件-我在“控制”选项卡上单击“检索记分卡”时出错


试着用替换
'do stuff
后面的4行

wScorecard.Cells(5, 2).Value = wData.Cells(iSel, 1).Value
wScorecard.Cells(7, 2).Value = wData.Cells(iSel, 2).Value
wScorecard.Cells(8, 2).Value = wData.Cells(iSel, 3).Value
wScorecard.Cells(9, 2).Value = wData.Cells(iSel, 4).Value
并检查是否仍然弹出错误

编辑

请将工作簿另存为新工作簿,并更改以下2个子项:

Sub RetrieveScorecard()

  'This macro will show the overview tab
  Dim iSel As Integer
  Dim i As Long

  Cells(ActiveCell.Row, 1).Select
  Application.DisplayAlerts = False
  Application.ScreenUpdating = False

  If ActiveCell.Value = "" Or ActiveCell.Row < 3 Then MsgBox "No Supplier Selected!", vbOKOnly: Exit Sub

  If Not MsgBox("You have selected " & ActiveCell.Value & ". Do you want to retrieve this supplier?", vbYesNoCancel + vbInformation, "Retrieve Scorecard") = vbYes Then MsgBox "All action stopped", vbOKOnly: Exit Sub

  Sheets("Scorecard").Visible = True

  With Sheets("Data")
    .Visible = True
    iCol = .Cells(.Columns(1).Cells.Count, 1).End(xlUp).Row
    For iSel = 2 To iCol
      If .Cells(iSel, 1).Value = ActiveCell.Value Then Exit For
    Next
    iCol = 1
  End With

  ' do stuff
  For i = 0 To 3
    Sheets("Scorecard").Cells(Array(5, 7, 8, 9)(i), 2).Value = Sheets("Data").Cells(iSel, i + 1).Value
  Next

  'Updates PQScore field to the correct selection
  With Sheets("Scorecard")
    For i = 0 To 18
      iRow = Sheets("Data").Cells(iSel, 5 + i).Value
      RetrieveValueList (.Cells(Array(14, 18, 19, 20, 21, 22, 26, 27, 28, 32, 36, 37, 38, 39, 40, 41, 45, 46, 47, 48)(i), 3))
    Next
  End With

  Sheets("Scorecard").Cells(10, 2).Value = Sheets("Data").Cells(iRow, 27)
  Sheets("Scorecard").Cells(11, 2).Value = Sheets("Data").Cells(iRow, 28)

  Sheets("Control").Visible = False
  Sheets("Scorecard").Select

  Application.DisplayAlerts = True
  Application.ScreenUpdating = True

End Sub

Private Sub RetrieveValueList(rSel As Range)

  With Sheets("Scorecard")
    If iRow = 1 Or iRow = 2 Or iRow = 3 Then
      .Cells(rSel.Row, 2).Value = Range(.Cells(rSel.Row, 2).Validation.Formula1)(4 - iRow)
    Else
      .Cells(rSel.Row, 2).Value = ""
    End If
  End With

  Sheets("Data").Select

End Sub
子检索CoreCard()
'此宏将显示“概述”选项卡
作为整数的Dim-iSel
我想我会坚持多久
单元格(ActiveCell.Row,1)。选择
Application.DisplayAlerts=False
Application.ScreenUpdating=False
如果ActiveCell.Value=“”或ActiveCell.Row<3,则MsgBox“未选择供应商!”,vbOKOnly:退出子列表
如果不是MsgBox(“您已选择”&ActiveCell.Value&“.是否要检索此供应商?”,vbYesNoCancel+vbInformation,“检索记分卡”)=vbYes,则MsgBox“所有操作已停止”,vbOKOnly:Exit Sub
工作表(“记分卡”)。可见=真实
带图纸(“数据”)
.Visible=True
iCol=.Cells(.Columns(1).Cells.Count,1).End(xlUp).Row
对于iSel=2至iCol
如果.Cells(iSel,1).Value=ActiveCell.Value,则退出
下一个
iCol=1
以
“做事
对于i=0到3
表格(“记分卡”)。单元格(数组(5,7,8,9)(i),2)。值=表格(“数据”)。单元格(iSel,i+1)。值
下一个
'将PQScore字段更新为正确的选择
带表格(“记分卡”)
对于i=0到18
iRow=表格(“数据”).单元格(iSel,5+i).值
RetrieveValueList(.Cells(数组(14、18、19、20、21、22、26、27、28、32、36、37、38、39、40、41、45、46、47、48)(i)、3))
下一个
以
表格(“记分卡”)。单元格(10,2)。值=表格(“数据”)。单元格(iRow,27)
表格(“记分卡”)。单元格(11,2)。值=表格(“数据”)。单元格(iRow,28)
表格(“控件”)。可见=假
表格(“记分卡”)。选择
Application.DisplayAlerts=True
Application.ScreenUpdating=True
端接头
私有子检索值列表(rSel作为范围)
带表格(“记分卡”)
如果iRow=1或iRow=2或iRow=3,则
.Cells(rSel.Row,2).Value=范围(.Cells(rSel.Row,2).Validation.Formula1)(4-iRow)
其他的
.Cells(rSel.Row,2).Value=“”
如果结束
以
工作表(“数据”)。选择
端接头

然后检查错误…

您能在这里发布您的代码吗?除了@BruceWayne提到的固有安全问题之外,我不知道是否有太多人(包括我自己)会下载指向internet上某个文件的链接(特别是我们需要允许宏运行的文件),这个问题对于任何未来的目的都是无用的,如果没有贴出注释的代码来指示哪一行抛出了错误以及错误消息本身。成为社区的一部分意味着更多的是解决你自己的问题;这意味着你正在为一个问答库做贡献,它将帮助其他人解决同样的问题。。。案件解决:DMy道歉,我是新来的,我还在学习正确的发帖方式@DirkReichel你没有出错吗?没有。。。。如果我选择一个客户并按下按钮,则不会弹出错误。。。(还尽可能检查了代码,不应该有任何错误……请告诉我您的excel版本,点击按钮时选择了哪个单元格,以及准确的错误文本……此外,如果一行标记为“此处有错误”,请告诉我哪一行……似乎有效,但我现在在以下几行得到错误:[GTCValue].Value=Cells(iRow,iCol+26)[GTC修改的_值].Value=Cells(iRow,iCol+27)@Ericmore我已经编辑了我的答案,请尝试一下……似乎是
ActiveSheet
-引用导致了这个问题……您可能只需要将
工作表(“xyz”)添加到您的范围中。
在工作表之间跳转50次,然后参考“活动”不能正常工作…这可以工作-但是控制选项卡在检索到供应商记分卡后消失。这更像是一个检查,如果您仍然收到该错误,它就像一个宏的完整重写…请尝试不要使用直接引用(其他宏也可能被重写,但如果你不知道它是如何工作的,那就没用了,所以你需要自己去做):D