MS Excel动态打印区域

时间:2014-06-17 13:55:16

标签: excel vba excel-vba

我希望在Excel 2010中创建一个动态Print_Area,它包含两个单元格区域。

例如,第一个单元格范围是A1:J50,第二个范围是A100:J150。这些应打印在两页上,忽略这两个范围之间的单元格。

上面示例范围中显示的四个单元格应该是动态的,而不是硬编码为简单的Print_Area范围。因此,在我的工作表中,我使用了单元格AA1AB1AC1AD1来存储值"A1""J50""A100""J150"分别。

(单元格AA1,AB1,AC1和AD1实际上使用公式来确定将使用哪个单元格地址,但是对于这个问题,我们假设值设置如上)。

然后我使用名称管理器并在Print_Area下输入以下公式:

=INDIRECT(Sheet1!$AA$1):INDIRECT(Sheet1!$AB$1);INDIRECT(Sheet1!$AC$1):INDIRECT(Sheet1!$AD$1)

这个公式的结果正是我所需要的,它实际上是我第一次打印范围时的工作原理。但是,一旦我这样做,Excel会自动将公式替换为计算出的实际单元格范围。因此,当我在打印一次后在名称管理器中检查Print_Area时,它包含如下内容:

=Sheet1!$A$1:$J$50,Sheet1!$A$100:$J$150

有没有办法阻止Print_Area将我的公式转换为计算值,而是每次打印时都使用公式?我想尽可能不使用宏(如果没有,我也会尝试使用宏)

1 个答案:

答案 0 :(得分:0)

我对此进行了测试,似乎有效。

创建一个名为Test的新名称,并将其值设置为(请注意,我使用的是逗号,而不是您使用的分号。我设置了美国语言)

=INDIRECT(Sheet1!$AA$1):INDIRECT(Sheet1!$AA$2),INDIRECT(Sheet1!$AA$3):INDIRECT(Sheet1!$AA$4)  

将Print_Area名称设置为

=TEST
祝你好运!

<强> 修改

以上对我有用,但似乎没必要。我只是试图复制问题,但无法解决。当我使用INDIRECT将Print_Area设置为公式时,它在打印后不会替换。

查看此链接文件。 https://www.dropbox.com/s/pgm0iv19u6igdm5/Book1.xlsx