与当前工作簿中的工作表名称相关的公式
说有
-
wbA.sheet1
和wbA.sheet2
(工作簿A与wbA.sheet1
和wbA.sheet2
) -
wbB.sheet1
和wbB.sheet2
(工作簿B与wbB.sheet1
和wbB.sheet2
)
在wbA.sheet1
,单元格A1
具有公式=Sheet2!B1
。 当您将此单元格A1
复制到wbB.sheet1
,它将与wbA.sheet2
B1
相关wbA.sheet2
。
但是,是否可以更改公式(可能是使用VBA),使单元格A1
与其当前所在工作簿中的工作表"Sheet2"
工作表"Sheet2"
?
这意味着无论在哪个工作簿单元格A1
中复制,都会在此工作簿中search工作表"Sheet2"
工作表"Sheet2"
,并从中B1
。 并不给REF!
错误。
关于我的情况的更多细节:
在wbA.sheet1
,单元格A1
公式计算工人的每日工资。 这是一个产品:
- 以前的单元格(你input小时数)和
- 小时率系数
最新的是wbA.sheet2
一个值。 您可以将任意wb
sheet2
视为系数的主要列表。 但是,不同的工作簿在sheet2
有不同的系数。 因此,当我将单元格A1
复制到任何其他工作簿时,我希望将其调整为当前工作簿中的小时率,而不是从初始工作簿中拖动费率。
解决方法可能是使用VBA复制范围的确切公式。
你可以给这个热键方便。 select要复制的单元格,然后运行macros。 它会提示您select要将其复制到的位置。
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
另一个解决方法是在公式中为系数使用定义的名称。 他们将更改为新的工作簿中定义的名称,受到恼人的消息框提示,没有“是所有”选项!