gpt4 book ai didi

vba - 与当前工作簿中的工作表名称相关的公式

转载 作者:行者123 更新时间:2023-12-04 20:12:57 24 4
gpt4 key购买 nike

说有

  • wbA.sheet1wbA.sheet2 (带有 sheet1 和 sheet2 的工作簿 A)
  • wbB.sheet1wbB.sheet2 (带有 sheet1 和 sheet2 的工作簿 B)

  • wbA.sheet1 , 单元格 A1有公式 =Sheet2!B1 .
    当您复制此单元格时 A1wbB.sheet1 ,它将与 B1 相关来自 wbA.sheet2 .

    但是,是否可以更改公式(可能使用 VBA),以便单元格 A1与工作表有关 "Sheet2" 在工作簿中,它当前位于 ?

    这意味着无论在哪个工作簿单元格 A1被复制,它搜索工作表 "Sheet2"这个工作簿和需要 B1从中。并且不给 REF!错误。

    关于我的案例的更多细节:

    wbA.sheet1单元格公式 A1计算 worker 的日薪。它是以下产品:
  • 上一个单元格(输入小时数的地方)和
  • 小时费率系数

  • 最新的是 wbA.sheet2 中的值.可以考虑 sheet2在任何 wb成为系数的主列表。但是,不同的工作簿在 sheet2 中的系数不同。 .因此,当我复制单元格 A1 ,对于任何其他工作簿,我希望将其调整为当前工作簿中的小时费率,而不是从初始工作簿中拖动费率。

    最佳答案

    一种解决方法是使用 VBA 复制范围的确切公式。

    为方便起见,您可以给它一个热键。选择要复制的单元格,然后运行宏。它将提示您选择要将其复制到的位置。

    Sub CopyExactFormula()
    Dim sRng As Range, dRng As Range
    Set sRng = Selection.Areas(1)
    On Error Resume Next
    Set dRng = Application.InputBox("Select destination output range (Top left cell)", "Output range", , , , , , 8)
    If dRng Is Nothing Then Exit Sub
    On Error GoTo 0
    Set dRng = dRng.Parent.Range(dRng.Cells(1, 1), dRng.Cells(sRng.Rows.Count, sRng.Columns.Count))
    dRng.Formula = sRng.Formula
    End Sub

    另一种解决方法是在系数的公式中使用定义的名称。它们将更改为新工作簿中定义的名称,但会出现一个没有“全部同意”选项的恼人消息框提示!

    关于vba - 与当前工作簿中的工作表名称相关的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33939969/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com