将导入的列从文本字段转换为数字

时间:2015-11-25 14:05:23

标签: excel vba excel-vba formatting excel-2010

我正在寻找一种将文本转换为数字的方法,然后可以在其他公式中进一步使用。我的专栏看起来很简单:

<?php if($row_archivos['tipo']=='R') : ?>
<script type="text/javascript">
$(document).ready(function() {
    $('#hayResolucion').hide();
});
</script>
<?php endif;

我试过几种方法:

Data1   Data2
1       1
123     1324
1000    1000
...     ...

或复制一个空单元格并将其添加到范围:

Range("S:S").NumberFormat = "0"
Range("T:T").NumberFormat = "0"

但是,除了看到正确的类型之外,只显示Excel底部的计数。

有关如何将Excel列正确转换为数字的任何建议,然后可以进一步使用其他公式吗?

我的错误是什么?

更新您可以在此处找到完整的VBA代码:

Sheets("Sold_Portfolio").Range("ZZ100000").Copy
Sheets("Sold_Portfolio").Range("T3:T100000").PasteSpecial , xlPasteSpecialOperationAd

2 个答案:

答案 0 :(得分:2)

你可能会运行类似:

Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, Tab:=True, FieldInfo:=Array(1, 1)  
每列

(假设这里为A)。

Text to Columns是一个必须由专有代码支持的向导。其中一个设施是允许选择“导入”的格式。然后将数据写入现有列并解析为其他列(其中(a)为空(除非该要求被覆盖)和(b)所选分隔符右侧或给定定义之外的数据宽度)。

&#39;导入&#39;数据实际上已经在所选列中。由于在这种情况下不包含任何选项卡,因此选择Tab作为分隔符意味着不涉及解析 - 从列中读取数据并重新输入其中。但是,作为重新进入过程的一部分,格式可能会发生变化。在这种情况下,1中的第二个array参数定义数字。

专有代码通常比VBA快得多。

答案 1 :(得分:1)

考虑:

Sub qwerty()
   Dim r As Range, rng As Range
   Set rng = Intersect(Range("S:T"), ActiveSheet.UsedRange)
   rng.ClearFormats

   For Each r In rng
      r.Value = r.Value
   Next r
End Sub