【问题标题】:Using value from an existing cell inside a formula使用公式内现有单元格中的值
【发布时间】:2012-01-09 04:07:00
【问题描述】:

我正在使用 excel 2010 中的“相机”功能。

我的目标是有一个单元格,它有一个我可以手动输入的日期,在它下面,公式将获得更新的值,它代表另一个 Excel 文件中工作表的名称,并向我显示更新的屏幕截图。

例如: 单元格A1 有:12.25

就在它下面,我有: ='C:\My_Excel_Files\[excelDataFile.xlsx]12.25'!$A$1:$D$20

因此,如果我将单元格 A1 的值更改为 12.26,公式会自动选择该值。

我尝试使用这样的间接函数: ='C:\My_Excel_Files\[excelDataFile.xlsx]INDIRECT(A1)'!$A$1:$D$20

但是没有用。

【问题讨论】:

  • 在某处您说 A1 的值为 12.25,但在另一处您使用冒号而不是小数点(如时间参考 - 12:26)。这是问题中的拼写错误,还是您要解决的问题的一部分?
  • @normalocity 抱歉。这是一个错字。感谢收看!
  • INDIRECT 不适用于已关闭的工作簿,请参阅此 comprehensive post including workarounds at Daily Dose of Excel。我对您的问题有些困惑,您是否希望看到相机工具显示的已关闭工作簿的范围?
  • @brettdj 我的问题并不是关于 INDIRECT 函数。我只是以它为例。我希望在文件的特定选项卡中查看范围 (A1:D20)。选项卡的名称将从我可以定义的单元格中提取(在本例中为 A1)

标签: excel excel-formula


【解决方案1】:

on this forumthis website 所述,您可以使用免费的 MOREFUNC.XLL 加载项。它提供了 INDIRECT.EXT 函数,可以完全按照您的要求进行操作。您需要的公式如下:

=INDIRECT.EXT("'C:\My_Excel_Files\[excelDataFile.xlsx]" & A1 & "'!$A$1:$D$20")

在字符串中间连接 A1 的值。

注意:这些网站中的链接似乎并不总是有效,您可以谷歌搜索“MOREFUNC 下载”或尝试以下链接之一:

http://download.cnet.com/Morefunc/3000-2077_4-10423159.html
http://www.freewarefiles.com/Morefunc_program_14922.html

【讨论】:

    【解决方案2】:

    稍微不同的方法可能对您有用。假设:

    1. 相机图像对象被称为MyCameraImage
    2. “其他”工作簿称为SO09.xlsm
    3. 您的图片对应的范围是$F$1:$I$5,并且在所有相关工作表上都相同
    4. 您输入日期的单元格(在带有相机图像的工作表中)是A1

    使用相机图像将Worksheet_Change 事件添加到工作表中

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim wbOther As Workbook
        Dim wsOther As Worksheet
    
        If Not Intersect(Target, Me.[A1]) Is Nothing Then
            Set wbOther = Workbooks("SO09.xlsm")
            On Error GoTo EH
            Set wsOther = wbOther.Worksheets(CStr([A1]))
            Me.Shapes("MyCameraImage").DrawingObject.Formula = "='[" & wbOther.Name & "]" & [A1] & "'!$F$1:$I$5"
    EH:
        End If
    
    End Sub
    

    这将更新对单元格 A1 中命名的工作表的相机图像引用(如果存在)
    请注意,必须打开“其他”工作簿才能使其正常工作并更新图像

    【讨论】:

    • 这对我不起作用。也许我在尝试做错什么。任何机会您都可以在示例中附加一个 excel 文件,这样我就可以看到我做错了什么。谢谢!
    【解决方案3】:

    是的,这很简单。创建两个 xlsx 文档,我们称它们为 s1.xlsxs2.xlsx。我们要从 s1 创建相机,但数据在 s2 中。

    在 s2 中

    • 打开两张工作表,在 s2 中创建您想要的内容。然后选择它 全部,然后按“复制”按钮。

    在 s1 中

    • 然后返回 s1 并在您想要放置的任何位置选择 您将要粘贴的内容的左上角单元格。
    • 然后转到粘贴按钮,但单击它的下拉菜单。第二个图标 将是一个链式链接,如果您将鼠标悬停,它会显示“粘贴链接”。这样做。
    • 然后选择您想要的所有数据(包括粘贴的链接 单元格)并按下相机按钮(假设您已将其添加到 你的 QAT)。然后选择要放置相机屏幕截图的位置 在任何地方的 s1 上,然后单击那里。将创建屏幕截图。
    • (注意:粘贴的链接看起来像 =Excel.Sheet.12|'C:\Users\Me\Desktop\s2.xlsx'!'!Sheet1!R3C1:R4C2')

    在 s2 中

    • 然后返回 s2 并更改其中的任何值 链接单元格

    在 s1 中

    • 您将在 s1 的屏幕截图中看到反映的值 立即。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 2013-02-28
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多