首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当两个工作簿打开时,引用工作簿中的公式会错误地填写数据

的原因是因为工作簿之间的引用关系发生了变化。在Excel中,公式通常使用单元格引用来计算结果。当一个工作簿引用另一个工作簿中的单元格时,如果两个工作簿同时打开,Excel会尝试根据当前打开的工作簿的路径来解析引用关系。

然而,当两个工作簿打开时,它们的路径可能会发生变化,导致引用关系无法正确解析。这可能会导致公式错误地填写数据,从而产生错误的计算结果。

为了解决这个问题,可以采取以下几种方法:

  1. 使用绝对引用:在公式中使用绝对引用,即在引用单元格的列和行前加上"$"符号。这样,无论工作簿的路径如何变化,公式都会始终引用正确的单元格。
  2. 使用INDIRECT函数:INDIRECT函数可以根据一个字符串来动态地引用单元格。通过将工作簿的路径和单元格引用作为字符串参数传递给INDIRECT函数,可以确保公式始终引用正确的单元格。
  3. 将工作簿保存在同一目录下:将两个工作簿保存在同一目录下,可以避免路径变化导致的引用错误。这样,当两个工作簿同时打开时,Excel可以正确解析引用关系。
  4. 使用数据连接:将工作簿之间的数据连接起来,可以确保引用关系正确解析。可以使用Excel的数据连接功能或者其他数据集成工具来实现数据连接。

总结起来,当两个工作簿打开时,引用工作簿中的公式会错误地填写数据是因为引用关系无法正确解析。为了解决这个问题,可以使用绝对引用、INDIRECT函数、保存在同一目录下或者使用数据连接等方法来确保公式引用的正确性。

相关搜索:打开工作簿时,宏引用了错误的工作簿当打开两个Excel工作簿,每个工作簿都包含VBA代码时,如何在工作簿之间切换代码视图?防止Excel在打开引用的工作簿时将公式更改为#REF如何从未打开的工作簿中获取数据?当工作簿名称每天更改时,在VBA中引用工作簿的最佳方法是什么?VBA打开第一个工作簿中的两个工作簿,并选择第二个工作簿中的特定工作表当从一个工作簿复制到另一个工作簿时,会创建一个“不需要的”工作簿VBA -如何引用两个单独打开的工作簿而不命名它们?从使用activeworkbook.path打开的工作簿复制工作表时出现excel VBA错误正在尝试复制工作簿数据,但当源打开时什么也没有发生在引用同一工作簿中的另一个工作表后使用CONCAT公式for循环遍历包含公式的工作簿中的工作表,直到包含数据的列的末尾Excel在另一个工作簿中运行宏,引用第一个工作簿中的数据,然后同时关闭这两个工作簿。只有一家会关闭无法使用VBA代码打开多个工作簿并追加excel工作表中的数据打开特定的工作簿并对用户表单运行查找公式时遇到问题仅当工作簿打开的时间超过一秒时才运行脚本。公式中另一个工作簿中的Vlookup数据不匹配如果两个工作簿中的两列具有相同的值,我希望将数据从一个工作簿复制到另一个工作簿在新的Interop Excel进程中打开工作簿时引发异常如何从用户窗体中的两个不同工作簿中捕获数据到指定的excel工作表(第一个工作簿)?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • EXCEL VBA语句集300

    定制模块行为 (1) Option Explicit ‘强制对模块内所有变量进行声明 Option Private Module ‘标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示  Option Compare Text ‘字符串不区分大小写  Option Base 1 ‘指定数组的第一个下标为1 (2) On Error Resume Next ‘忽略错误继续执行VBA代码,避免出现错误消息 (3) On Error GoTo ErrorHandler ‘当错误发生时跳转到过程中的某个位置 (4) On Error GoTo 0 ‘恢复正常的错误提示 (5) Application.DisplayAlerts=False ‘在程序执行过程中使出现的警告框不显示 (6) Application.ScreenUpdating=False ‘关闭屏幕刷新 Application.ScreenUpdating=True ‘打开屏幕刷新 (7) Application.Enable.CancelKey=xlDisabled ‘禁用Ctrl+Break中止宏运行的功能  工作簿 (8) Workbooks.Add() ‘创建一个新的工作簿 (9) Workbooks(“book1.xls”).Activate ‘激活名为book1的工作簿 (10) ThisWorkbook.Save ‘保存工作簿 (11) ThisWorkbook.close ‘关闭当前工作簿 (12) ActiveWorkbook.Sheets.Count ‘获取活动工作薄中工作表数 (13) ActiveWorkbook.name ‘返回活动工作薄的名称 (14) ThisWorkbook.Name ‘返回当前工作簿名称 ThisWorkbook.FullName ‘返回当前工作簿路径和名称 (15) ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小 (16) Application.Window.Arrange xlArrangeStyleTiled ‘将工作簿以平铺方式排列 (17) ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化  工作表 (18) ActiveSheet.UsedRange.Rows.Count ‘当前工作表中已使用的行数 (19) Rows.Count ‘获取工作表的行数(注:考虑向前兼容性) (20) Sheets(Sheet1).Name= “Sum” ‘将Sheet1命名为Sum (21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) ‘添加一个新工作表在第一工作表前 (22) ActiveSheet.Move After:=ActiveWorkbook. _ Sheets(ActiveWorkbook.Sheets.Count) ‘将当前工作表移至工作表的最后 (23) Worksheets(Array(“sheet1”,”sheet2”)).Select ‘同时选择工作表1和工作表2 (24) Sheets(“sheet1”).Delete或 Sheets(1).Delete ‘删除工作表1 (25) ActiveWorkbook.Sheets(i).Name ‘获取工作表i的名称 (26) ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines ‘切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮 (27) ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings ‘切换工作表中的行列边框显示 (28) ActiveSheet.UsedRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式 (29) Cells.Hyperlinks.Delete ‘取消当前工作表所有超链接 (30) ActiveSheet.PageSetup.Orientation=xlLandscape 或ActiveSheet.PageSetup.Orientation=2 ‘将页面设置更改为横向 (31) ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在页面设置的表尾中输入文件路径 ActiveSheet.PageSetup.Le

    04
    领券