みなさん、こんにちは!私は現在、VBScriptを実装する前に、Excelで何かを理解しようとしています。行列内のいくつかのセル(10*10または5r*10c)を数学的に転置する必要があります。
------------------------------- | .. | .. | .. | .. | .. | .. | | 21 | 22 | 23 | 24 | 25 | .. | | 11 | 12 | 13 | 14 | 15 | .. | | 1 | 2 | 3 | 4 | 5 | .. | -------------------------------
になる必要があります
------------------------------- | .. | .. | .. | .. | .. | .. | | 3 | 13 | 23 | 33 | 43 | .. | | 2 | 12 | 22 | 32 | 42 | .. | | 1 | 11 | 21 | 31 | 41 | .. | -------------------------------
今、私は数学者ではありませんが(現時点ではプログラマーではありません)、次のことを思いつきました:(F(y)=((MOD(x,10)-1)*10)+(1+((x-MOD(x,10))/10))
はx
上のプレブロックy
の値であり、下のプレブロックの値です。 )これで、これは特定のポイント(例10
)まで正常に機能します。
VBScriptで、私は最初に以下を書きました:
関数GetPosInSrcRack(Pos) Dim PlateDef(9)、x、y、i、tmp 'プレートの定義 ReDim tmp(UBound(PlateDef)) x = 0の場合UBound(PlateDef)へ PlateDef(x)= tmp 次 i = 1 x = 0の場合UBound(PlateDef)へ y = 0の場合UBound(PlateDef(x))へ PlateDef(x)(y)= i i =(i + 1) 次 次 'Dimmsg'定義を確認してください 'For x = 0 To(UBound(PlateDef)) 'msg = Join(PlateDef(x)、 "、")&vbCrLf&msg '次 '位置を取得します y =(pos Mod 10) x =((pos --y)/ 10) GetPosInSrcRack = PlateDef(y)(x) 終了機能
もちろん、これは機能しますが、くだらないです。
上記の式を使用して、私は次のように書きます。
関数GetPosInSrcRack(Pos) Pos =(((Pos MOD 10)-1)* 10)+(1+((Pos-(Pos MOD 10))/ 10)) 終了機能
しかし、私が言ったように、これはまだ正しくありません(10は-8を与えます)誰かが私を助けることができますか?