如何根据工作表的代号来设置工作表对象?
工作表名称可能会更改。 正因为如此,我想根据工作表的代号来设置工作表对象。 我怎样才能做到这一点?
我迄今为止的最佳尝试是:
Sub UpdateNameDropdown() Dim wksName As String wksName = ThisWorkbook.Sheets(Sheet16).Name Dim wks As Worksheet Set wks = Sheets(wksName) End Sub
但是我在行wksName = ThisWorkbook.Sheets.Sheet16.Name
上得到一个types不匹配的错误
这使用代号作为string
Sub CodeIt() Dim CodeName As String CodeName = "Sheet1" Dim WS As Worksheet, GetWorksheetFromCodeName As Worksheet For Each WS In ThisWorkbook.Worksheets If StrComp(WS.CodeName, CodeName, vbTextCompare) = 0 Then Set GetWorksheetFromCodeName = WS Exit For End If Next WS MsgBox GetWorksheetFromCodeName.Name End Sub
这个?
Sub Sample() Dim wks As Worksheet Set wks = Sheet16 With wks Debug.Print .Name '~~> Do what you want End With End Sub
谢谢加里的学生。 我把你的function变成了以下内容:
Function GetWorksheetFromCodename(codeName As String) As Worksheet Dim wks As Worksheet For Each wks In ThisWorkbook.Worksheets If StrComp(wks.codeName, codeName, vbTextCompare) = 0 Then Set GetWorksheetFromCodename = wks Exit For End If Next wks End Function
- Infragistics WebExcelExporter设置要导出的最大行数
- 维护从XML到Excel文件的层次结构 – Java
- 减去剩余时间,并比较VBA中的数字
- closures复制和复制/移动(从工作簿到工作簿)没有promting公式或表.. ..?
- Netsuite:保存的searchfunction很像Excel中的“文本到列”
- VBA – 将列复制并粘贴到一个列,然后复制相应的标题x次
- 将Excel工作表,macros和graphics从一个工作簿复制到另一个,将链接移动到新的工作簿
- 将数据行转换为类似于数据透视表的实际值
- VLOOKUP适用于FormulaR1C1,但不是正则expression式?