将各种文件大小转换为字节

时间:2010-11-01 20:18:02

标签: excel vba ms-access-2007

我有一列“文件大小”,输出效果不佳,因为它不一致。例如,值可以是“4GB”,“32 MB”,“320 KB”,“932字节”等。我需要将这些全部转换为标准值,以便我可以将它们添加到报告中。

4 个答案:

答案 0 :(得分:2)

考虑这种方法

  • 选择一种显示格式。也许选择字节。

对于每个细胞:

  • 确定其规模。这可能涉及字符串解析,寻找“结束”一些有效的可能性范围:“字节”,“kb”,“mb”,“gb”,“千字节”,“千兆字节”。首先转换为小写,以确保理智。考虑拼写错误!

  • 提取数字。使用此VBA numeric regex的变体来提取数字。注意小数!

  • 您的输出将是(数字)*(以字节为单位的比例)

答案 1 :(得分:2)

这是一个非常简单的答案 - 但如果确切的字节数不是很重要的话,它可能会让你快速解决这个问题。只需进行简单的文本搜索和替换即可。

将“KB”(和“千字节”及其他变体)替换为“000”,将“MB”替换为“000000”,将“GB”替换为“000000000”。用“”替换“bytes”。然后将单元格/列类型转换为数字。

如果值以小数(“4.32 MB”)给出,则不会那么容易,但您的示例应该可以正常工作。

答案 2 :(得分:1)

我想说你有两个选择:

1:要求所有这些数据都以字节为单位(如果数据已经存在,则可能不可行)

2:使用正则表达式将数字与单位分开,然后使用switch语句(或循环或任何你喜欢的)来执行正确的乘法以获得以字节为单位的数字(可能两者中更容易)。 / p>

编辑:

正则表达式看起来像这样:

(\d*) *(.*)

这将分别捕获数字和单位,并忽略两者之间的任何空格(你仍然需要修改正则表达式的输入,因为前面和前面的空格可能会引起一些悲伤)。

答案 3 :(得分:0)

字节,千字节,兆字节等都是公制单位。只需为报告选择一个标准单位(例如,兆字节),然后乘以或除以不同单位给出的值即可获得所需的值。