我正在尝试使用vba填充200,000个单元格,并且需要花费5分钟来完成它。是否有更快的方式来填充细胞?代码如下所示
library(tidyverse)
out <- master %>%
pull(personalInfo) %>%
map_df(~ map_chr(.x, ~ replace(.x, is.null(.x), NA))) %>%
bind_cols(master %>%
select(id), .)
str(out)
#'data.frame': 10 obs. of 3 variables:
# $ id : num 1551 1033 1061 1262 1032 ...
# $ fname: chr "Jack" "Yogesh" "Steven" "Richard" ...
# $ mname: chr "B" NA "J" "I" ...
我想只是为了让你更容易,我试图填充AU列中的单元格从-10到10,每次更改0.001
答案 0 :(得分:3)
加载数组,然后将数组分配给单元格。
Sub pre()
Dim i As Long: i = 1
Dim arr(1 To 200000, 1 To 1) As Variant
Dim rex As Variant
For rex = -10 To 10 Step 0.001
arr(i, 1) = rex
i = i + 1
Next rex
ActiveSheet.Cells(2, 47).Resize(200000).Value = arr
End Sub
从vba访问工作表会减慢代码速度。限制访问工作表的时间。
答案 1 :(得分:2)
这个在大约一秒钟内运行
我会在上面放一个计时器。
OP的代码在.4101563
中运行以下代码在.3789063
中运行Scotts代码可能是9/1000秒? 9.765625E-02
Sub Button1_Click()
Dim rng As Range
Set rng = Range("AU3:AU200000")
Range("Au2").Value = -10
rng.Formula = "=AU2+0.0001"
rng.Value = rng.Value
End Sub