使用vba Userform时的格式问题

时间:2014-04-02 07:08:48

标签: excel vba excel-vba format

我之前在Excel中使用了时钟工作表。打孔时钟的正常功能是当我按下打孔按钮,宏通过vba inbulid变量Time(和Date)查找时间(和日期)并将它们放入定义的单元格中。同样的情况发生在我打出的时候,但在这里它还会计算每日工作时间和弹性时间的运行平衡

这部分工作正常

我最近想扩展我的程序,因此可以通过vba userform更改特定日期的时间(打卡或打卡),然后重新计算弹性时间平衡。 可以让userform查找并更改特定日期的时间,但是当我尝试重新计算工作时间和弹性时间时,我得到格式缺失匹配错误。在调试时,我将鼠标悬停在变量上,我可以看到更改的单元格格式为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

0 个答案:

没有答案