与VBA一起使用时,对工作表使用绝对命名

时间:2014-03-18 13:04:54

标签: excel vba excel-vba excel-formula

我有以下问题:在我的一个excel文件中,我有以下工作表:一个我有许多公式,一个包含当前月份的数据(从其他来源复制和粘贴)那里),以及一些用作某种存档的工作表。

我使用一点VBA宏将数据从当前月份移动到存档中。

Sheets("Aktueller Monat").Cells.Cut
Sheets("1").Activate
Range("A1").Select
ActiveSheet.Paste

它的移动部分工作正常。问题是,每次我将当前月份移动到存档中时,它会更新我的计算表中的所有公式,以便它们现在引用存档(我不想要,因为公式应该计算当前新的当月)

例如,这个

=ZÄHLENWENN('Aktueller Monat'!$C:$C;"RSS*")

变成这个

=ZÄHLENWENN('1'!$C:$C;"RSS*")

我不想要那个。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:2)

使用CopyPasteSpecial,然后使用ClearClearContents,而不是CutPaste。在下面的示例中,我粘贴了值和数字格式,但您可以使用XlPasteType Enumeration的不同值调整此值以满足您的需求:

Dim oSourceRange As Range, oTargetRange As Range
Set oSourceRange = Worksheets("Aktueller Monat").UsedRange
Set oTargetRange = Worksheets("1").Range("A1")

oSourceRange.Copy
oTargetRange.PasteSpecial xlPasteValuesAndNumberFormats
oSourceRange.ClearContents