请注意,我之前从未使用过Excel这样的高级方式(事实上,我之前从未使用过任何函数......但我目前正在搜索Excel在线和VBA的教程,而我我在这里问,万一有人知道哪些更好用,以及如何有效地使用它们。
我在 A列(也是句子)中提供Excel 5个标题,在列B < 10个句子 < / strong>随机生成 3段,每个段落使用 1个标题和3个句子。
我如何实现这一目标?我知道Excel有一个RAND()函数,但这似乎只适用于数字......
更多内容,如果我确实找到解决方案,我会更新。
答案 0 :(得分:1)
如果您的数据位于第一张工作表的A1:A5
和B1:B10
,则使用RANDBETWEEN
Sub GetText()
Dim A
Dim B
A = Sheets(1).Range(Sheets(1).[a1], Sheets(1).[a5])
B = Sheets(1).Range(Sheets(1).[b1], Sheets(1).[b10])
MsgBox A(Application.RandBetween(1, UBound(A)), 1) & " " & B(Application.RandBetween(1, UBound(B)), 1)
End Sub
答案 1 :(得分:0)
在单元格C1中放置:
=RANDBETWEEN(1;5)
in cell D1 put:
=RANDBETWEEN(1;10)
在单元格E1中:
=IF(D1=1;RANDBETWEEN(2;10);IF(D1=10;RANDBETWEEN(1;9);CHOOSE(RANDBETWEEN(1;2);RANDBETWEEN(1;D1-1);RANDBETWEEN(D1+1;10))))
在单元格F1中放置:
=IF(MAX(D1:E1)-MIN(D1:E1)=1;IF(MIN(D1:E1)=1;RANDBETWEEN(3;10);IF(MIN(D1:E1)=9;RANDBETWEEN(1;8);CHOOSE(RANDBETWEEN(1;2);RANDBETWEEN(1;MIN(D1:E1)-1);RANDBETWEEN(MAX(D1:E1)+1;10))));IF(MAX(D1:E1)-MIN(D1:E1)=9;RANDBETWEEN(2;9);IF(MIN(D1:E1)=1;CHOOSE(RANDBETWEEN(1;2);RANDBETWEEN(2;MAX(D1:E1)-1);RANDBETWEEN(MAX(D1:E1)+1;10));IF(MAX(D1:E1)=10;CHOOSE(RANDBETWEEN(1;2);RANDBETWEEN(1;MIN(D1:E1)-1);RANDBETWEEN(MIN(D1:E1)+1;9));CHOOSE(RANDBETWEEN(1;3);RANDBETWEEN(1;MIN(D1:E1)-1);RANDBETWEEN(MIN(D1:E1)+1;MAX(D1:E1)-1);RANDBETWEEN(MAX(D1:E1)+1;10))))))
在细胞G1中:
=CONCATENATE(INDIRECT("A" & C1);" "; INDIRECT("B" & D1); " ";INDIRECT("B" & E1);" ";INDIRECT("B" & F1))
复制单元格C1:G1并隐藏列C:F