因此,我对excel VBA有点陌生,我正在创建一个可在财务工作表上运行的宏。我想将总计中的值移到正确的位置,因为它们是实际数据左侧的一列(这些不是由公式创建的,它们是由其他程序生成的,并且是固定文本)。我设法做得很好。这里的问题是要找到合计列在哪里,因为它在工作表之间有所不同。
这是我到目前为止所拥有的。
For totalRow = 7 To 2000
With ws
If ws.Visible = True Then
If InStr(Range(totalRow, "A").Value, "Totals:") > 0 Then
Exit For
End If
End If
End With
Next totalRow
但是由于某种原因,当我尝试运行它时给了我一个错误。我知道这可能是我忽略的简单事情,因为我一生无法解决问题。我尝试使用Do-Until循环,同样的问题。我使用的变量有问题吗?
答案 0 :(得分:0)
一些建议:
错误1004“应用程序定义的错误或对象定义的错误”
VBA Runtime Error 1004 "Application-defined or Object-defined error" when Selecting Range
使用VBA调试器并一次在宏中逐行执行,直到找到特定对象,然后将其倒钩:
编辑:
您应该始终在工作表中确定范围/单元格调用的范围 对象,否则他们将引用碰巧是 活动表。
但是请:
如果有可能,请努力学习可用的故障排除工具(例如调试器)。
我还建议您查看另一个“有用的提示”链接:
http://www.jlathamsite.com/Teach/VBA/WritingBulletProofCode.pdf