【发布时间】:2013-08-13 01:39:15
【问题描述】:
我的 VBA 代码中有以下代码行,用于在 Excel 工作表中自动设置单元格的文本。
Sheets(checkout_sheet_name).Cells(Row_Index, checkout_tool_observation_column).Value = status
以前在我的旧电子表格中执行相同的逻辑很好,但现在我已将模块转移到新的电子表格中,它不再工作。该行以所有变量的正确值执行。有谁知道为什么这行代码会简单地执行而不实际将单元格的值设置为我在调试器中看到的文本?
谢谢。
【问题讨论】:
-
你的价值观都是你期望的吗? (
checkout_sheet_name、Row_Index、checkout_tool_observation_column和status) -
仅凭这一点,并假设每个变量都有适当的值,......你能提供更多的代码吗?新工作簿与旧工作簿具有相同的工作表名称?你的意思是它执行而不给你一个错误和没有设置单元格值?
-
将
Option Explicit作为代码的第一行放在Module中。Option Explicit语句检查代码中使用的所有变量是否已声明(在编译时)。如果不是,则会引发错误,这使开发人员更容易检查他的代码。 -
另外添加一行
Debug.print Sheets(checkout_sheet_name).Cells(Row_Index, checkout_tool_observation_column).Value并确保该值存在。有时将字体颜色设置为白色是一个愚蠢的错误