我被要求为约9,000行工作表编写一个宏,该工作表的数字比Excel通常允许的数字长。为了解决这个问题,我必须在每个单元格前附加一个单引号/撇号,然后再删除连字符或对数据进行消毒,否则Excel即使将其归类为Text也会将其缩写。
除了FOR循环并遍历每个单元格之外,还有其他方法吗?
答案 0 :(得分:5)
遍历数组,并同时进行所有“消毒”。
dim arr as variant, i as long
with worksheets(1)
arr = .range(.cells(2, "A"), .cells(.rows.count, "A").end(xlup)).value2
for i=lbound(arr, 1) to ubound(arr, 1)
arr(i, 1) = chr(39) & replace(arr(i, 1), chr(45), vbnullstring)
next i
'optional text format for cells
'.cells(2, "A").resize(ubound(arr, 1), ubound(arr, 2)).numberformat = "@"
.cells(2, "A").resize(ubound(arr, 1), ubound(arr, 2)) = arr
end with