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

说有

  1. wbA.sheet1wbA.sheet2 (工作簿A与wbA.sheet1wbA.sheet2
  2. wbB.sheet1wbB.sheet2 (工作簿B与wbB.sheet1wbB.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 

另一个解决方法是在公式中为系数使用定义的名称。 他们将更改为新的工作簿中定义的名称,受到恼人的消息框提示,没有“是所有”选项!