【发布时间】:2018-05-23 12:11:31
【问题描述】:
在处理大型 csv 文件时,我决定将它们加载到 VBA 内存中,而不是加载到我的电子表格中,以使其更快更轻。
所以我有一个函数 CSVtoArray,它可以读取我的 CSV 并给我一个数组。
如果我仍然想在 excel 中查看我的数据,我只需在我的 s/s 中写入 {=(CSVtoArray(my_csv_path)}。
但由于我的 csv 大小会随时间而变化,我想编写一个名为 AutoRange 的函数,它会根据我的范围大小自动适应电子表格中的显示区域。
这就是我写的,但它不起作用,它什么也不做,只有我正在编写公式的单元格被填充。
Function AutoRange(my_array As Variant)
Dim nb_rows, nb_cols As Integer
Dim current_cell, target_range As Range
nb_rows = UBound(my_array, 1)
nb_cols = UBound(my_array, 2)
Set current_cell = Selection
current_cell.Resize(nb_rows, nb_cols).FormulaArray = current_cell.Formula
AutoRange = Selection
End Function
提前谢谢各位。
【问题讨论】:
-
我认为这是一个双重职位stackoverflow.com/questions/12259595/…
-
嗯不,实际上这是之后的步骤。我已经阅读了 CSV,它存储在我的内存中,现在我想在电子表格中显示它。