我有一个包含多个工作表的工作簿。
工作表以日期格式dd dddd mmm命名。例如8月15日星期三。当天可能会有很多工作表命名,但末尾有一个简单的(N)。 8月15日星期三(3)。这些已在早期阶段由worksheet.count复制。
我有一个Range(“ F3”),用于查找我要查找的工作表。但是我似乎无法正确地弄清楚如何找到其命名系列中的最后一张纸。例如8月12日星期三(3)。
以下函数及其相关子作品...但是只能找到命名系列中的第一个,例如8月12日,星期三。我需要修改它以找到系列中的最后一个,例如8月12日,星期三(3)。该工作簿包含许多不同日期的数据。
非常感谢您的帮助。
Function SheetExist(strSheetName As String) As Boolean
Dim i As Integer
For i = 1 To Worksheets.Count
If Worksheets(i).Name = strSheetName Then
SheetExist = True
Exit Function
End If
Next i
End Function
Sub FindlastestUpdate()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim Dfind As String
Dfind = Workbooks("Inbound.Control.xlsm").Worksheets("ControlPanel").Range("F3")
Dfind = Format(Dfind, "ddd dd mmm")
If SheetExist(Dfind) Then
Workbooks("Inbound.Control.xlsm").Worksheets(Dfind).Select
Debug.Print "The Sheet Exists"
Else 'What Happends if the sheet dosnt exist
Debug.Print "The Sheet Does NOT Exists"
End If
结束子
答案 0 :(得分:2)
这是一个循环和使用->whereRaw("NOT
(
trades.tradedate
BETWEEN
(CONCAT(DATE(trades.tradedate), ' ', exchanges.start_time))
AND
(CASE
WHEN exchanges.close_time > exchanges.start_time
THEN (CONCAT(DATE(DATE_ADD(trades.tradedate, INTERVAL 1 DAY)), ' ', exchanges.close_time))
ELSE (CONCAT(DATE(trades.tradedate), ' ', exchanges.close_time))
)
)");
外观的示例。根据需要更改工作簿引用。在这里,使用Split
在每个工作表名称中查找F3
值。如果存在,则代码将查看该名称是否存在Instr
。如果这样做,它将在此和"("
上进行拆分,以提取工作表副本中存在的数字。这可以从一些错误处理中受益。将提取的数字与")"
变量进行比较。如果更大,则将finalNumber
设置为提取的数字,依此类推。如果未找到finalNumber
,则假定所需的最终工作表是找到的工作表,其中没有"("
,但与"("
值匹配。
F3