|
▼VBAでメール さん:
インデントをきちんとつけて
If ....... Then
If ..... Then
End If
End If
のように、外側のIf に対応する End If のスタート位置と
内側の If に対応する End If のスタート位置 が同じ位置になるように
Tabキー、 Shift+TAB で編集します。
すると、
最初の With句 に対応する End With がないことが分かり、
一番最後に End With をつけると、こんどは
さいしょの If文に対応する End If が記述されていないことが分かります。
Private Sub CommandButton36_Click()
Dim lRow As Long
Dim ss As String
Dim Number As Long
Number = TextBox3.Text
With Worksheets("DATA")
'TextBox81 のテキストをチェック
ss = TextBox81.Text
If IsDate(ss) Then '時間データか?
If TimeValue(ss) > 0 Then '有効な時間データか?
With Worksheets("DATA")
lRow = .Range("AP" & Rows.Count).End(xlUp).Row
.Range("AP" & lRow + 1).Value = ss
End With
End If
'▲ここに End If が必要
'TextBox51 のテキストをチェック
ss = TextBox51.Text
If IsDate(ss) Then '時間データか?
If TimeValue(ss) > 0 Then '有効な時間データか?
With Worksheets("DATA")
lRow = .Range("AQ" & Rows.Count).End(xlUp).Row
.Range("AQ" & lRow + 1).Value = ss
End With
End If
End If
End With '◆ ← End With がない
End Sub
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
あといまさらですが、
TextBox81
とか、
TextBox51
と言われても、何のためのテキストボックスなのか、こちらにはサッパリわかりません。
> TextBox76: 累計時間 (TextBox77 + TextBox78 + TextBox82)
> TextBox50 -49 = TextBox78(小計時間)
> TextBox54 -53 = TextBox77(小計時間)
> TextBox57 -56 = TextBox82(小計時間)
>
> TextBox70、71、72(DATE:日付)
> TextBox52、55、58 (コメント)
> になります。
> CommandButton36_Click()はワークシート(DATA)に飛ばす
という情報は以前いただいてますが、このなかに、 TextBox81とか TextBox51
はありませんし。。。
あと、非常に重要なことですが、
日付を表示しているテキストボックスをチェックするときには、
TimeValue()>0 としても、意味ないですよ。
コメント(単なる文字列)を表示しているテキストボックスのばあいは
そもそも IsDate関数でチェックすることがまちがいです。
テキストボックスの表示内容に合ったIf文で チェックしてください。
文字列が書き込まれてるかどうかなら、
If Len(TextBox100.Text) > 0 Then
転記する
End If
で十分でしょう。
|
|