使用vba Userform时格式问题

我以前在Excel中的时钟工作表中打了一个拳头。 在时钟冲的正常function是当我按下button,一个macros通过vba inbulidvariables时间(和date)查找时间(和date),并把它们放在定义的单元格中。 同样的情况发生时,我冲出来,但在这里它也计算每天的工作时间和与flextime运行的平衡

这部分工作正常

我最近想扩展我的程序,所以可以通过vba用户窗体更改特定date的时间(打入或closures),然后重新计算弹性时间平衡。 已经有可能让用户表单find并更改特定date的时间,但是当我尝试重新计算工作时间和弹性时间时,出现格式缺失匹配错误。 在debugging时,我将鼠标hover在variables上,可以看到已更改的单元格被格式化为hh:mm:ss,但现有单元格被格式化为十进制数,即使它们在工作表中显示为时间。

我怎么能格式相似?

Private Sub cmdOK_Click() Dim w1 As Worksheet Set w1 = Sheets("Aktuel måned") numofDateRows = w1.Range("I1").Offset(w1.Rows.Count - 1, 0).End(xlUp).Row 'find last cell with dates For i = 1 To numofDateRows If w1.Range("I" & i) = DTPicker1 Then 'find row with choosen date If chbInd.value = True Then 'if punch in time is going to be change w1.Range("J" & i) = txbTid 'inserts the new time w1.Range("L" & i) = w1.Range("K" & i) - w1.Range("J" & i) + w1.Range("F12").MergeArea.Cells(1, 1) 'recaculate working hours w1.Range("M" & i) = w1.Range("L" & i) + w1.Range("M" & (i - 1)) - w1.Range("F14") 'recalculate flextime balance End If Next End Sub