-1
列内の一連の数値を読み取り、指定されたより短い数値を返すようにコードを設定しようとしています。たとえば、数値が200の場合は1を返し、400の場合は2を返します。これが可能であれば、どのような考えですか?ここで列内の指定された数値を短縮するコード
列内の一連の数値を読み取り、指定されたより短い数値を返すようにコードを設定しようとしています。たとえば、数値が200の場合は1を返し、400の場合は2を返します。これが可能であれば、どのような考えですか?ここで列内の指定された数値を短縮するコード
は、二重ループを備えた小さな例です。
Sub Shorten()
Dim ary(1 To 4) As Long, bry(1 To 4) As Long
Dim I As Long, N As Long
ary(1) = 100
ary(2) = 234
ary(3) = 8765
ary(4) = 123
bry(1) = 1
bry(2) = 2
bry(3) = 3
bry(4) = 4
N = Cells(Rows.Count, "A").End(xlUp).Row
For I = 1 To N
For j = 1 To 4
If Cells(I, 1).Value = ary(j) Then Cells(I, 1).Value = bry(j)
Next j
Next I
End Sub
進()「長い」の値とブリのリスト()「短い」値のリストが含まれています。
これはうまくいきました。わずかな問題は、データシートの列Aの数字のみを修正していることです。マクロを実行する列を指定するにはどうすればよいですか?また、列に長い数字が入力されたときに自動的にマクロを実行する方法はありますか? –
「指定された短い番号を返す」と言うときは、短い番号のリストがあり、特定の大きい番号に対応するものを探したいということですか? – Werrf
また、短縮形に数値をマップする数式はありますか? e.x. 200/200 = 1,400/200 = 2、... x/200? –