将范围(非连续)转换为值

时间:2014-09-18 17:57:06

标签: excel vba excel-vba

我有很多使用外部数据源的复杂公式。我的用户无法访问此数据源,因此我希望在发送工作表之前将范围转换为值。

范围=

=VALs!$A$1,VALs!$D$1:$D$45,VALs!$F$1:$G$45,VALs!$I$1:$J$45,VALs!$N$1:$N$45,VALs!$R$1:$T$45,VALs!$V$1:$V$45,VALs!$X$1:$Y$45,VALs!$AB$1:$AB$45,VALs!$AE$1:$AE$45,VALs!$AT$1:$AT$45,VALs!$AW$1:$BB$45,VALs!$BD$1:$BD$45,VALs!$BG$1:$BG$45,VALs!$BK$1:$BK$45,VALs!$BQ$1:$BQ$45,VALs!$BT$1:$BT$45,VALs!$CC$1:$CD$45,VALs!$CJ$1:$CJ$45,VALs!$CN$1:$CN$45,VALs!$CP$1:$CQ$45,VALs!$CU$1:$CW$45,VALs!$DA$1:$DC$45,VALs!$DH$1:$DH$45,VALs!$DJ$1:$DJ$45,VALs!$DL$1:$DL$45,VALs!$DO$1:$DO$45,VALs!$DR$1:$DS$45,VALs!$DV$1:$DV$45,VALs!$DZ$1:$EA$45,VALs!$EV$1:$EV$45,VALs!$EY$1:$EY$45,VALs!$FB$1:$FC$45,VALs!$FE$1:$FL$45

现在:

  • 复制&粘贴为值不适用于多个选择
  • 使用表格(" VALs")。范​​围("值")。CurrentRegion .Value = .Value 不起作用,我最终用空单元代替范围
  • 范围是动态的,会经常变化,这就是为什么它被命名,有一个单独的子来创建范围

有人能帮忙吗?

1 个答案:

答案 0 :(得分:1)

你的意思是这么简单吗? (在这种情况下,命名范围被命名为“RNG”。)

Sub RangeToValues()
  For Each cel In Range("RNG").Cells
    cel.Value = cel.Value
  Next cel
End Sub

或问题是否更复杂,我不理解?