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

问题描述:

我有一个非常大范围的使用外部数据源的复杂公式。我的用户无权访问此数据源,因此我希望在发送表单之前将范围转换为值。将范围(非连续)转换为值

范围=

=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 

现在:

  • 复制&膏值并不多选择
  • 床单工作( “丘壑”)范围(“值。 “).CurrentRegion .Value = .Value不起作用,最终以空单元格代替范围
  • 范围是动态的,会经常发生变化,这就是为什么它的命名,有一个单独的子创建

会有人能够帮忙的范围内?

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

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

或者是问题比较复杂,我不明白?

+1

赞赏,应该考虑做遍历单元格。 – LucasSeveryn 2014-09-18 18:14:52