我当前在报表模型中使用多个宏。遇到的问题如下:
我使用的第一个宏复制工作表A中的所有数据(数据基于其他工作表的公式)并将硬值粘贴到工作表B中。接下来,我有一个不同的工作表C,其中一些数据引用并链接到工作表B。
当我再次运行工作表1中的宏时,工作表B中的数据可能会更改,这不是问题。但是,工作表C中的引用给予了#REF!
,而不是链接到工作表B中的正确单元格。
例如,当我在工作表C中使用以下代码时:
=IF(LEFT('WorksheetB'!A1;3)="Yes"; 'WorksheetB'!B1; 0)
字符串
当我运行宏时,我得到:
=IF(LEFT('WorksheetB'!#REF!;3)="Yes"; 'WorksheetB'!#REF!; 0)
型
当工作表A中的宏导致工作表B中的数据发生更改时,是否有方法保持与工作表B的链接?
我尝试了所有的方法。从用F4锁定单元格到创建另一个宏。
下面是宏的代码:
Sub X()
'
If Worksheets("Checks").Range("C2").Value > 0.01 Then
MsgBox "One or multiple checks is/are invalid"
Exit Sub
End If
Filename = ActiveWorkbook.Name
Mypath = ThisWorkbook.Path
Sheets("Output for Exact").Select
Myname = Filename & " " & Range("B2") & " " & "Q" & Sheets("General Input").Range("B5").Text & " EXPORTFILE "
Columns("A:W").Select
Selection.Copy
Sheets("Accruals Previous Period").Select
Range("A1").Select
Sheets("Output for Exact").Select
Columns("A:W").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Accruals Previous Period").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Application.Run "Wisnullenrf3"
End Sub
型
1条答案
按热度按时间deyfvvtc1#
让我们从清理代码开始:
字符串
执行PasteSpecial的行需要有特定的单元格,PasteSpecial需要在该单元格中发生。
你会注意到我去掉了所有的“空格”。你不必选择一个单元格来做什么,只要引用这个单元格,然后对它做需要做的事情,或者从它提取你需要的东西(谷歌“面向对象编程”了解更多细节)。