用Excel / VBA生成一个头文件和一组给定的句子

只是要注意,我从来没有用过这么先进的方式使用Excel(事实上,我从来没有使用任何函数,但是我现在正在Excel和在线searchExcel教程,而且我正在问这里只是为了防止有人知道使用哪一个,以及如何有效地使用它们)。

我在列A (也是句子)中给Excel 5头文件 ,在B列中写 10个句子 ,随机生成3个段落 ,每个段落使用1个头文件和3个句子

我该如何去实现呢? 我知道Excel有一个RAND()函数,但似乎只适用于数字…

更多的来,如果我真的find解决scheme,我会更新。

如果您的数据在第一张纸的A1:A5B1: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 

在单元格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