我想更新一个工作表。工作表的名称随日期更改。
举个例子,工作表应该被命名为
星期一“你好,世界6.13” “你好,世界6.17”今天
如何查找以"Hello“开头而忽略日期代码的工作表名称
发布于 2016-06-17 13:33:37
我要做的就是循环遍历活动工作簿中的工作表并进行比较,当找到正确的工作表"Hello x.xx“时,将其设置为引用,并使用此引用运行任何进一步的代码。
Let searchTerm = "Hello World"
For Each ws In ActiveWorkbook.Sheets
If Left(ws.Name, Len(searchTerm)) = searchTerm Then
Set hwSheet = ws
Exit For
End If
Next ws
'do some code eg:
With hwSheet
.Range("A1").Value = "Hi"
End With发布于 2016-06-17 14:14:51
所以,您想要捕获的电子表格总是相同的工作表,在同一个工作簿中?如果我做对了,您可以在客户端的工作簿中使用工作表的代码名,比如Sheet1,而不是工作表名称。
Dim wb As Workbook, ws as Worksheet
Set wb = Workbooks("Client.xls")
wb.Activate
Set ws = Sheet1在使用工作表代码之前,您必须激活适当的工作簿。要确定这是可行的,谨慎的做法是将客户端的工作表代号更改为唯一的(如果它还没有),如果这是您的权限范围内的话。
发布于 2016-06-19 04:55:17
下面发布的是Oliver代码的一个版本,它处理循环中找到的工作表,而不是最后找到的匹配。
其他一些小的调整
Left$的字符串版本比变体Left更快。ws时并不明显)代码
Sub Updated()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Sheets
If Left$(ws.Name, 11) = "Hello World" Then
With ws
'do something
End With
End If
Next ws
End Sub返回所有不带循环的部分工作表匹配的另一个选项在Adding Sheet Names to Array in Excel VBA中。
https://stackoverflow.com/questions/37882735
复制相似问题