Как отобразить msgbox по датам - PullRequest
0 голосов
/ 02 января 2012

[Part 1 - Original question]

У меня есть значения, такие как 30, 31, 28 или 29, которые являются общими днями месяца.

Я хочу сделать цикл for

Если я выберу 28, он должен отображать msgbox 28 раз.

Если я выберу 31, он должен отображать msgbox 31 раз.

Код, который я пробовал:

Dim dayst As Variant
Dim tot1 As Variant
tot1 = DateDiff("d", "01/2011", DateAdd("m", 1, "01/2011"))
tot1 = Split(tot1, ",")
For Each dayst In tot1
   MsgBox dayst
Next

Приведенный выше код показывает "31" в msgbox вместо 31 раз, как "1", "2", ... "31"

Я хочу отобразить msgbox 31с шагом от 1 до 31.

[Part 2 - Updated request]

Пример значения столбца по умолчанию

ID 1 2 ..... 31  totaldays

001 Yes Yes .... Yes 31
002 Yes Yes .... Yes 31
003 Yes Yes .... Yes 31
.....

001 is coming from table
Yes is the default column value for 1 to 31 or 1 to 28
totaldays should be no of days permonth.

Как это сделать с помощью vb6.

1 Ответ

3 голосов
/ 02 января 2012

Вы можете просто использовать простой цикл, подобный этому, - хотя я не понимаю, почему вы хотели бы иметь 28-31 приглашение MsgBox подряд

Dim tot1 As Long
Dim lngDays As Long
tot1 = DateDiff("d", "01/2011", DateAdd("m", 1, "01/2011"))
For lngDays = 1 To tot1
    MsgBox lngDays
Next

Updated version - adds early exit option

Dim tot1 As Long
Dim lngDays As Long
Dim lngExit As Long
tot1 = DateDiff("d", "01/2011", DateAdd("m", 1, "01/2011"))
For lngDays = 1 To tot1
   lngExit = MsgBox(lngDays, vbOKCancel, "Press Cancel to exit")
   If lngExit = vbCancel Then Exit Sub
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...