嵌套在WITH语句中的Case语句未选择案例

Handreen

我试图根据在工作簿的单元格D2中找到的输入时间值将单元格“ H2”设置为“ Shift 1”,“ Shift 2”或“ Shift 3”,这是一个屏幕截图示例:

在此处输入图片说明

因此单元格H2为Shift 1,因为它在时间值内 Case TimeValue("11:21 PM") To TimeValue("7:20 AM")

这是代码,它执行但不选择案例,因此我无法弄清楚我的错误。另外,如果在With statement我用语句设置单元格“ D2”中设置的时间输入的情况下,无论如何要执行这3个case语句,我将不胜感激!

.Range("D2").Value = Now  'Inputs the Time Value as the current Time                                                                                                                        
        
.Range("D2").NumberFormat = "h:mm:ss AM/PM"  'Formats the Time value as a Time entry                                                                                                      

该代码可以在下面找到:

Sub ReportGeneratorTest()

    Application.ScreenUpdating = False                                                                                                         'This speeds up the macro by hiding what the macro is doing
    Application.EnableEvents = False
    Application.Calculation = xlCalculationManual
    
    Set wb3 = Workbooks.Open(Filename:="\\Report Generator\SetupSheet Report Generator.xlsm")   'Sets the Workbook variable as the database filepath
    
    With wb3.Sheets("All Requests Sheet 1")                                                                                                    'With the "Changes" sheet do the following

        .Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow                                                                             'Inserts a new row in [3] with the same format as below
        
        .Range("A2").Value = Sheet1.Range("K112").Value                                                 'Inputs the typed in Operator name into the Report Generator
        
        .Range("B2").Value = Sheet1.Range("H4").Value                                                                                                       'Inputs the "Key" inside cell "A"  of the new row
        
        .Range("C2").Value = Now                                                                                                                            'Inputs the Date Submitted value as the current date
        
        .Range("C2").NumberFormat = "dd-mmm-yyyy"                                                                                                           'Formats the Date Submitted value as a date entry
        
        .Range("D2").Value = Now                                                                                                                            'Inputs the Time Value as the current Time
        
        .Range("D2").NumberFormat = "h:mm:ss AM/PM"                                                                                                         'Formats the Time value as a Time entry
        
        .Range("E2").Value = UCase(Sheet1.Range("E4").Value)                                                                                                'Inputs the Part inside Cell "D" of the new row
        
        .Range("F2").Value = Sheet1.Range("E5").Value                                                                                                       'Inputs the Process inside Cell "E" of the new row
        
        .Range("G2").Value = "IRR 200-2S"
        
    End With
  
    Dim T1 As Date
    
    'T1 = Range("D2").Value
    
    T1 = Now
    
    'Set T1 = Range("D2").Value
        
    Select Case T1
        
        Case TimeValue("7:21 AM") To TimeValue("3:20 PM")
        
         Range("H2").Value = "Shift 2"
        
        Case TimeValue("3:21 PM") To TimeValue("11:20 PM")
        
         Range("H2").Value = "Shift 3"
         
        Case Else 'If the Timevalue is between TimeValue("11:21 PM") To TimeValue("7:20 AM")
        
        Range("H2").Value = "Shift 1"
        
    End Select
    
    wb3.Save                                                                                                                                              'Save the database Workbook
        
    wb3.Close False
    
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    Application.ScreenUpdating = True                                                                                                                    'Must be "True" after running the code to be able to Read/Write the Workbook

End Sub

大本钟

将评论总结成一个答案:

  • Case TimeValue("11:21 PM") To TimeValue("7:20 AM")不起作用,因为使用时To,应先使用较小的值。也许只需将“ Shift 1”逻辑移至即可Case Else
  • 更重要的是,Now包括今天的日期,即它既包含日期又包含时间。要仅获取时间分量,可以执行以下操作:
Dim T1 As Double
T1 = Now - Date

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SELECT嵌套在WITH语句中

来自分类Dev

从“选择...案例”语句中省略“案例”

来自分类Dev

嵌套在if语句中的MySQL查询-PHP

来自分类Dev

嵌套在if语句中的MySQL查询-PHP

来自分类Dev

如果嵌套在 if 语句中 - Javascript

来自分类Dev

Select Case语句中的多个真实案例

来自分类Dev

嵌套在循环中的 if 语句中的 OCaml 返回值

来自分类Dev

嵌套选择语句中的表行计数

来自分类Dev

从嵌套的选择语句中检索计数

来自分类Dev

在switch语句中选择案例的常量映射?

来自分类Dev

基于选择语句的案例?

来自分类Dev

更新语句中的案例

来自分类Dev

Case语句中的TODATETIMEOFFSET

来自分类Dev

CASE 语句中的 WHERE

来自分类Dev

案例评估后,mysql case语句未返回适当的消息

来自分类Dev

脚本跳过嵌套case语句中的用户输入

来自分类Dev

嵌套的case语句中不接受用户输入

来自分类Dev

嵌套的CASE WHEN语句中缺少关键字

来自分类Dev

MySQL是否可以将SELECT LEFT嵌套在SELECT语句中?

来自分类Dev

当嵌套在 if 语句中时,启动 cmd 无法在 Windows 批处理文件中正确执行

来自分类Dev

case语句中未初始化的变量

来自分类Dev

如何在IF或CASE WHEN语句中选择多个值

来自分类Dev

选择期间where语句中的SQL CASE错误

来自分类Dev

在where子句中使用Case语句选择多个值

来自分类Dev

选择期间where语句中的SQL CASE错误

来自分类Dev

选择where子句中的SQL Server CASE语句

来自分类Dev

VHDL 错误:CASE 语句中的选择必须是本地静态的

来自分类Dev

需要在 if 语句中嵌套 if 语句的指导

来自分类Dev

嵌套的CASE WHEN语句