数组中的VBA Excel百分比格式

有没有办法在数组中保存特定的格式? 我试图find两个单独的网格中的数字之间的百分比差异和规则差异。 我可以单独做这些事情,但是当我尝试把答案放在同一个工作表中时,我遇到了错误。

截至目前,我计算百分比差异,然后select我的答案是网格,并更改样式和数字格式。 但是,当我尝试显示差异(如“百分比差异/差异”程序返回百分比差异长十进制。我知道,原因是因为数字格式和样式格式不保存到实际数组,但我无法弄清楚如何解决它。

我已经尝试了以下内容:

  • 在创build斜线和差异之前更改格式
  • 将答案数组分配给活动单元格中的当前值(值仍然是小数点,而不是百分比对应点)
  • 计算百分比差异和差异,然后改变格式(这是比实际尝试改变任何东西更微弱的希望)

我不记得我是否尝试了其他的东西,但是我知道它失败了。

*****例子******

用户将发送我的程序到一个特定的工作簿,其上有两个数字网格的工作表。 这些网格具有完全相同的尺寸。 我的程序将计算这些表(Sheet1 – Sheet2),差异百分比((Sheet1 – Sheet2)/ Sheet2)和两者之间的差异。 这三个计算是在程序创build的三张单独的图纸上显示的。 程序产生的所有数字将在对应于首先得到数字的单元格的单元格中。 此外,第三张(百分比和差额)被视为“百分比差异”。 这里有一个testing数字的例子。

网格1

12.0 5.0 2.0 10.0 

网格2

 6.0 7.0 1.0 3.0 

DIFF

 6.0 -2.0 1.0 7.0 

百分比差异

 100.00% -28.57% 100.00% 233.33% 

所以“两个”选项卡将如下所示:

 100.00%/6.0 -28.57/-2.0 100.00%/1.0 233.33%/7.0 

对不起,没有这样更多的网格。 我不知道如何呈现。

谢谢

不知道如果我完全按照,但我认为你可能只需要范围对象“.Text”的方法:

  dim rgNumValues as Range ' cells formatted as 12.0, 5.0 etc dim rgPctValues as Range ' cells formatted as 100%, -28.57% etc. 

然后创build结合两种格式的新单元格

  dim rgNumAndPct as Range rgNumAndPct.Cells(1,1) = rgNumValues.Cells(1,1).Text + " / " _ + rgPctValues.Cells(1,1).Text ' creates cells w string values like "12.0 / 100%", "5.0 / -28.57%" etc. 

“.Text”方法从NumValues和PctValues中提取可见的string,而不是基础数值。 只需重写为一个循环来完成所有的单元格。 对于非常大的范围,可以通过在variables数组中创buildNumAndPct值并将该数组分配到目标范围来加速。

如果你用vba中的代码来做这件事,你可以使用格式化函数为每个项目,并以类似的方式追加单元格。 如果一个简单的公式化版本可以工作,就像这样,在需要的地方replace工作表名称。

在这里输入图像说明