如何解决选择具有包含日期的动态名称的工作表
我一直在尝试选择一个名为“ SYS 6.10.2020”的表。但是,此工作表每周更改其日期。是否有VBA代码可以根据今天的日期选择工作表?
解决方法
静态字符串
您可以通过向Sheets
函数提供日期(以适当的格式设置)来实现。
快速样本:
Sheets("SYS 6.10.2020").Select
动态字符串
Sub Task1()
Dim myDate
myDate = Date
MsgBox myDate
Dim LValue As String
LValue = "SYS " & Format(myDate,"dd.mm.yyyy")
MsgBox LValue
Sheets(LValue).Activate
End Sub
如果每周仅添加一张工作表,则可以使用vba中的日历查找上一个日期(例如上个星期一),并从中生成名称。
,工作表名称
代码
Option Explicit
' If it is the only worksheet that starts with "SYS ","sys "...
Sub PartialMatch()
Const wsName As String = "SYS "
Dim wb As Workbook
Set wb = ThisWorkbook
Dim ws As Worksheet
For Each ws In wb.Worksheets
If StrComp(Left(ws.Name,Len(wsName)),wsName,vbTextCompare) = 0 Then
Exit For
End If
Next
If ws Is Nothing Then
'MsgBox "Worksheet starting with '" & wsName _
& "' not found.",vbCritical,"Fail"
Debug.Print "Worksheet starting with '" & wsName & "' not found."
Exit Sub
End If
' Continue with code...
Debug.Print ws.Name
End Sub
Sub ExactMatch()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim wsName As String
wsName = "SYS " & Replace(Format(Date,"d/m/yyyy"),"/",".")
On Error Resume Next
Dim ws As Worksheet
Set ws = wb.Worksheets(wsName)
On Error GoTo 0
If ws Is Nothing Then
'MsgBox "Worksheet '" & wsName & "' not found.","Fail"
Debug.Print "Worksheet '" & wsName & "' not found."
Exit Sub
End If
' Continue with code...
Debug.Print ws.Name
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。