Excel VBA:如果时间介于两次之间,请将文本添加到行,而不是空白

时间:2016-04-25 18:48:58

标签: excel vba time

我正在尝试根据条目上的时间戳在一行中的特定单元格中添加工作班次标签(Day,Swing,Grave)。如果没有时间戳,我希望它什么都不做。

时间戳的格式为“hh:mm:ss”,位于第6 / F行。

这是我到目前为止所拥有的。如果没有第4行,它会将所有条目标记为日,否则没有骰子。

@enc_id VARCHAR(36)
AS
BEGIN
    SET NOCOUNT ON

    DECLARE @enc_id_generate VARCHAR(36)

    DECLARE enc_id_cursor CURSOR 
    FOR
        (SELECT enc_id_generate 
         FROM my_table 
         WHERE txt_enc_id = @enc_id)

    OPEN enc_id_cursor

    FETCH NEXT FROM enc_id_cursor INTO @enc_id_generate

    WHILE @@FETCH_STATUS = 0 
    BEGIN

        -- Here is the stored procedure that needs to run for each record. 
        -- The only parameter it uses is @enc_id_generate

        FETCH NEXT FROM enc_id_cursor INTO @enc_id_generate
    END

    CLOSE enc_id_cursor
    DEALLOCATE enc_id_cursor

    SET NOCOUNT OFF
END

1 个答案:

答案 0 :(得分:2)

第四行给你带来意外情况的原因是因为你有Cell.Value,而不是cel.value

If IsEmpty(cel.Value) Then Exit For

这将修复你的逻辑测试。此外,您需要指定Time内容,否则只需使用00:00:00

修改: 高度 建议您将Option Explicit添加到子版的顶部(或通过Excel选项)。如果您使用变量,这将强制您声明变量。这就是我在.1秒内捕获此错误的方法 - 我复制了你的宏,试图运行它,它立即突出显示该行。