1
我正在使用下拉列表內容控件處理開始時間和結束時間表。我試圖找出如何計算總工作時間取決於時間在列表和超時列表中的選擇。有一個小問題,因爲我有一個命令按鈕來添加和刪除表的行,以便只顯示必要的內容,而不是在表中存在大量未使用的行。MS Word VBA計算表中的時間和超時
每次在1/4小時的時間間隔,我試圖讓結果被格式化,以便0:15爲0.25,0:30爲0.50等
一兩件事有關時間下拉列表。你會在代碼中注意到每個下拉列表中有多少個條目。有沒有辦法讓這個更有效率,或者真的是讓每件物品上市的唯一方法?這很瘋狂。
非常感謝!
Sub MakeLaborRow(oTable As Table)
Dim oNewRow As Row
Dim oRng As Range
Dim oCell As Cell
Dim iCell As Integer
Dim oCC As ContentControl, oCC1 As ContentControl, oCC2 As ContentControl
Dim lngCell1 As Long, lngCell2 As Long
lngCell1 = 0: lngCell2 = 0
If Not ActiveDocument.ProtectionType = wdNoProtection Then
ActiveDocument.Unprotect
End If
Set oNewRow = oTable.Rows.Add
oNewRow.Range.Font.Bold = False
For iCell = 1 To 6
Set oCell = oNewRow.Cells(iCell)
Set oRng = oCell.Range
oRng.End = oRng.End - 1
Select Case iCell
Case 1
Set oCC = oRng.ContentControls.Add _
(Range:=oRng, _
Type:=wdContentControlDate)
With oCC
.SetPlaceholderText , , "Select Date"
.DateDisplayFormat = "ddd MM/dd/yyyy"
.Tag = "Date" & oCell.RowIndex
End With
Case 2
Set oCC = oRng.ContentControls.Add(wdContentControlDropdownList)
With oCC
.SetPlaceholderText , , "Choose Description"
.DropdownListEntries.Add "Labor Time"
.DropdownListEntries.Add "Travel Time"
.DropdownListEntries.Add "Wait Time"
.Tag = "Description" & oCell.RowIndex
End With
Case 3
Set oCC = oRng.ContentControls.Add(wdContentControlDropdownList)
With oCC
.SetPlaceholderText , , "Time In "
.DropdownListEntries.Add "12:00 AM"
.DropdownListEntries.Add "12:15 AM"
.DropdownListEntries.Add "12:30 AM"
.DropdownListEntries.Add "12:45 AM"
.DropdownListEntries.Add "1:00 AM"
.DropdownListEntries.Add "1:15 AM"
.DropdownListEntries.Add "1:30 AM"
.DropdownListEntries.Add "1:45 AM"
.DropdownListEntries.Add "2:00 AM"
.DropdownListEntries.Add "2:15 AM"
.DropdownListEntries.Add "2:30 AM"
.DropdownListEntries.Add "2:45 AM"
.DropdownListEntries.Add "3:00 AM"
.DropdownListEntries.Add "3:15 AM"
.DropdownListEntries.Add "3:30 AM"
.DropdownListEntries.Add "3:45 AM"
.DropdownListEntries.Add "4:00 AM"
.DropdownListEntries.Add "4:15 AM"
.DropdownListEntries.Add "4:30 AM"
.DropdownListEntries.Add "4:45 AM"
.DropdownListEntries.Add "5:00 AM"
.DropdownListEntries.Add "5:15 AM"
.DropdownListEntries.Add "5:30 AM"
.DropdownListEntries.Add "5:45 AM"
.DropdownListEntries.Add "6:00 AM"
.DropdownListEntries.Add "6:15 AM"
.DropdownListEntries.Add "6:30 AM"
.DropdownListEntries.Add "6:45 AM"
.DropdownListEntries.Add "7:00 AM"
.DropdownListEntries.Add "7:15 AM"
.DropdownListEntries.Add "7:30 AM"
.DropdownListEntries.Add "7:45 AM"
.DropdownListEntries.Add "8:00 AM"
.DropdownListEntries.Add "8:15 AM"
.DropdownListEntries.Add "8:30 AM"
.DropdownListEntries.Add "8:45 AM"
.DropdownListEntries.Add "9:00 AM"
.DropdownListEntries.Add "9:15 AM"
.DropdownListEntries.Add "9:30 AM"
.DropdownListEntries.Add "9:45 AM"
.DropdownListEntries.Add "10:00 AM"
.DropdownListEntries.Add "10:15 AM"
.DropdownListEntries.Add "10:30 AM"
.DropdownListEntries.Add "10:45 AM"
.DropdownListEntries.Add "11:00 AM"
.DropdownListEntries.Add "11:15 AM"
.DropdownListEntries.Add "11:30 AM"
.DropdownListEntries.Add "11:45 AM"
.DropdownListEntries.Add "12:00 PM"
.DropdownListEntries.Add "12:15 PM"
.DropdownListEntries.Add "12:30 PM"
.DropdownListEntries.Add "12:45 PM"
.DropdownListEntries.Add "1:00 PM"
.DropdownListEntries.Add "1:15 PM"
.DropdownListEntries.Add "1:30 PM"
.DropdownListEntries.Add "1:45 PM"
.DropdownListEntries.Add "2:00 PM"
.DropdownListEntries.Add "2:15 PM"
.DropdownListEntries.Add "2:30 PM"
.DropdownListEntries.Add "2:45 PM"
.DropdownListEntries.Add "3:00 PM"
.DropdownListEntries.Add "3:15 PM"
.DropdownListEntries.Add "3:30 PM"
.DropdownListEntries.Add "3:45 PM"
.DropdownListEntries.Add "4:00 PM"
.DropdownListEntries.Add "4:15 PM"
.DropdownListEntries.Add "4:30 PM"
.DropdownListEntries.Add "4:45 PM"
.DropdownListEntries.Add "5:00 PM"
.DropdownListEntries.Add "5:15 PM"
.DropdownListEntries.Add "5:30 PM"
.DropdownListEntries.Add "5:45 PM"
.DropdownListEntries.Add "6:00 PM"
.DropdownListEntries.Add "6:15 PM"
.DropdownListEntries.Add "6:30 PM"
.DropdownListEntries.Add "6:45 PM"
.DropdownListEntries.Add "7:00 PM"
.DropdownListEntries.Add "7:15 PM"
.DropdownListEntries.Add "7:30 PM"
.DropdownListEntries.Add "7:45 PM"
.DropdownListEntries.Add "8:00 PM"
.DropdownListEntries.Add "8:15 PM"
.DropdownListEntries.Add "8:30 PM"
.DropdownListEntries.Add "8:45 PM"
.DropdownListEntries.Add "9:00 PM"
.DropdownListEntries.Add "9:15 PM"
.DropdownListEntries.Add "9:30 PM"
.DropdownListEntries.Add "9:45 PM"
.DropdownListEntries.Add "10:00 PM"
.DropdownListEntries.Add "10:15 PM"
.DropdownListEntries.Add "10:30 PM"
.DropdownListEntries.Add "10:45 PM"
.DropdownListEntries.Add "11:00 PM"
.DropdownListEntries.Add "11:15 PM"
.DropdownListEntries.Add "11:30 PM"
.DropdownListEntries.Add "11:45 PM"
.Tag = "TimeIn" & oCell.RowIndex
End With
Case 4
Set oCC = oRng.ContentControls.Add(wdContentControlDropdownList)
With oCC
.SetPlaceholderText , , "Time Out"
.DropdownListEntries.Add "12:00 AM"
.DropdownListEntries.Add "12:15 AM"
.DropdownListEntries.Add "12:30 AM"
.DropdownListEntries.Add "12:45 AM"
.DropdownListEntries.Add "1:00 AM"
.DropdownListEntries.Add "1:15 AM"
.DropdownListEntries.Add "1:30 AM"
.DropdownListEntries.Add "1:45 AM"
.DropdownListEntries.Add "2:00 AM"
.DropdownListEntries.Add "2:15 AM"
.DropdownListEntries.Add "2:30 AM"
.DropdownListEntries.Add "2:45 AM"
.DropdownListEntries.Add "3:00 AM"
.DropdownListEntries.Add "3:15 AM"
.DropdownListEntries.Add "3:30 AM"
.DropdownListEntries.Add "3:45 AM"
.DropdownListEntries.Add "4:00 AM"
.DropdownListEntries.Add "4:15 AM"
.DropdownListEntries.Add "4:30 AM"
.DropdownListEntries.Add "4:45 AM"
.DropdownListEntries.Add "5:00 AM"
.DropdownListEntries.Add "5:15 AM"
.DropdownListEntries.Add "5:30 AM"
.DropdownListEntries.Add "5:45 AM"
.DropdownListEntries.Add "6:00 AM"
.DropdownListEntries.Add "6:15 AM"
.DropdownListEntries.Add "6:30 AM"
.DropdownListEntries.Add "6:45 AM"
.DropdownListEntries.Add "7:00 AM"
.DropdownListEntries.Add "7:15 AM"
.DropdownListEntries.Add "7:30 AM"
.DropdownListEntries.Add "7:45 AM"
.DropdownListEntries.Add "8:00 AM"
.DropdownListEntries.Add "8:15 AM"
.DropdownListEntries.Add "8:30 AM"
.DropdownListEntries.Add "8:45 AM"
.DropdownListEntries.Add "9:00 AM"
.DropdownListEntries.Add "9:15 AM"
.DropdownListEntries.Add "9:30 AM"
.DropdownListEntries.Add "9:45 AM"
.DropdownListEntries.Add "10:00 AM"
.DropdownListEntries.Add "10:15 AM"
.DropdownListEntries.Add "10:30 AM"
.DropdownListEntries.Add "10:45 AM"
.DropdownListEntries.Add "11:00 AM"
.DropdownListEntries.Add "11:15 AM"
.DropdownListEntries.Add "11:30 AM"
.DropdownListEntries.Add "11:45 AM"
.DropdownListEntries.Add "12:00 PM"
.DropdownListEntries.Add "12:15 PM"
.DropdownListEntries.Add "12:30 PM"
.DropdownListEntries.Add "12:45 PM"
.DropdownListEntries.Add "1:00 PM"
.DropdownListEntries.Add "1:15 PM"
.DropdownListEntries.Add "1:30 PM"
.DropdownListEntries.Add "1:45 PM"
.DropdownListEntries.Add "2:00 PM"
.DropdownListEntries.Add "2:15 PM"
.DropdownListEntries.Add "2:30 PM"
.DropdownListEntries.Add "2:45 PM"
.DropdownListEntries.Add "3:00 PM"
.DropdownListEntries.Add "3:15 PM"
.DropdownListEntries.Add "3:30 PM"
.DropdownListEntries.Add "3:45 PM"
.DropdownListEntries.Add "4:00 PM"
.DropdownListEntries.Add "4:15 PM"
.DropdownListEntries.Add "4:30 PM"
.DropdownListEntries.Add "4:45 PM"
.DropdownListEntries.Add "5:00 PM"
.DropdownListEntries.Add "5:15 PM"
.DropdownListEntries.Add "5:30 PM"
.DropdownListEntries.Add "5:45 PM"
.DropdownListEntries.Add "6:00 PM"
.DropdownListEntries.Add "6:15 PM"
.DropdownListEntries.Add "6:30 PM"
.DropdownListEntries.Add "6:45 PM"
.DropdownListEntries.Add "7:00 PM"
.DropdownListEntries.Add "7:15 PM"
.DropdownListEntries.Add "7:30 PM"
.DropdownListEntries.Add "7:45 PM"
.DropdownListEntries.Add "8:00 PM"
.DropdownListEntries.Add "8:15 PM"
.DropdownListEntries.Add "8:30 PM"
.DropdownListEntries.Add "8:45 PM"
.DropdownListEntries.Add "9:00 PM"
.DropdownListEntries.Add "9:15 PM"
.DropdownListEntries.Add "9:30 PM"
.DropdownListEntries.Add "9:45 PM"
.DropdownListEntries.Add "10:00 PM"
.DropdownListEntries.Add "10:15 PM"
.DropdownListEntries.Add "10:30 PM"
.DropdownListEntries.Add "10:45 PM"
.DropdownListEntries.Add "11:00 PM"
.DropdownListEntries.Add "11:15 PM"
.DropdownListEntries.Add "11:30 PM"
.DropdownListEntries.Add "11:45 PM"
.Tag = "TimeOut" & oCell.RowIndex
End With
Case 5
Set oCC = oRng.ContentControls.Add(wdContentControlText)
With oCC
.SetPlaceholderText , , "Total Hrs."
.Tag = "TotalHrs" & oCell.RowIndex
End With
Case 6
Set oCC = oRng.ContentControls.Add(wdContentControlText)
With oCC
.SetPlaceholderText , , "---"
.Tag = "Mileage" & oCell.RowIndex
End With
End Select
Next iCell
oNewRow.Cells(1).Select
ActiveDocument.Protect wdAllowOnlyFormFields, NoReset:=True, _
Password:=""
lbl_Exit:
Set oCell = Nothing
Set oCC = Nothing
Set oCC1 = Nothing
Set oCC2 = Nothing
Set oRng = Nothing
Set oTable = Nothing
Set oNewRow = Nothing
Exit Sub
End Sub
我可以把這個插入ContentControlOnExit嗎? – BradBerger