1

念のために言っておきますが、私はこれまで Excel をこれほど高度な方法で使用したことがありません (実際、これまでどの関数も使用したことがありませんでした... しかし、現在 Excel のオンラインと VBA に関するチュートリアルを探していて、質問しています。ここでは、どちらを使用するか、およびそれらを効果的に使用する方法を誰かがよく知っている場合に備えて)。

列 AにExcel 5 のヘッダー(これも文)と列 Bに10 の文 を指定して、それぞれ1 つのヘッダーと 3 つの文を使用してランダムに3 つの段落を生成します。

それを達成するにはどうすればよいですか?ExcelにはRAND()関数があることは知っていますが、それは数値にしか適用されないようです...

今後も、実際に解決策が見つかったら更新します。

4

2 に答える 2

1

あなたのデータが最初のシートにあった場合、次のようなものを使用しA1:A5B1:B10RANDBETWEEN

  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
于 2013-07-23T05:33:53.183 に答える
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 を非表示にします

于 2013-07-23T05:22:56.400 に答える