|
▼nonoka さん:
>▼kanabun さん:
>IFとelseifでつなげて解決致しました。
>IFの使い方が少しわかったように思います。
ご自分で解決されて何よりです。
以下は、考え方の 参考です。
> ADからARにランダムに0か1が入力されています。
> NからAAにはADからARの数字を読み取って
> 0が入っていれば空白、1が入っていれは足すという式にしたいです。
以下の 例文を各行同じスタイルでまとめると
NはADが 0 なら [K]、ADが 1 なら K + AD を表示。 Kは必ず「日付」。
OはAEが 0 なら空白、AEが 1 なら N + AE を表示。Nは必ず「日付」
PはAFが 0 なら空白、AFが 1 なら O(*) + AF を表示。
QはAGが 0 なら空白、AGが 1 なら P(*) + AG を表示、。
RはAHが 0 なら空白、AHが 1 なら Q(*) + AH を表示。
SはAIが 0 なら空白、AIが 1 なら R(*) + AI を表示。
'
'ただし Pの式:Oが空白なら Oの代わりに N を足す。
同様に Qの式: Pが空白なら 左の空白でないセルの値を足す。
同様に Rの式: Qが空白なら 左の空白でないセルの値を足す。
同様に Sの式: Rが空白なら 左の空白でないセルの値を足す。
'↑この処理は 空白でないとき +1した値をセルに書き込む、と同時に
セルのIDプロパティにも書き込んでおけば、
次のセルが空白だったとき、そのセルのIDプロパティをコピーすれば
NまでLoopで遡る必要がない。
これをコードにすると、
Sub test2()
Dim c As Range
[N1].Value = [K1].Value - ([N1].Value = 1)
[N1].ID = [N1].Value
[O1:AA1].ClearContents
For Each c In [O1:AA1]
If c.Offset(, 16).Value = 1 Then
c.Value = CDate(c.Offset(, -1).ID) + 1
c.ID = c.Value
Else
c.ID = c.Offset(, -1).ID
End If
Next
End Sub
|
|