Public Sub Find_Tab_Search() Dim sSearch As String sSearch = "" sSearch = InputBox("Enter Search", "Find Tab") If Trim(sSearch) = "" Then Exit Sub 'MsgBox (sSearch) Dim sSheets() As String Dim sMatchMessage As String Dim iWorksheets As Integer Dim iCounter As Integer Dim iMatches As Integer Dim iMatch As Integer Dim sGet As String Dim sPrompt As String iMatch = -1 iMatches = 0 sMatchMessage = "" iWorksheets = Application.ActiveWorkbook.Sheets.Count ReDim sSheets(iWorksheets) 'Put list of names in array For iCounter = 1 To iWorksheets sSheets(iCounter) = Application.ActiveWorkbook.Sheets(iCounter).Name If InStr(1, sSheets(iCounter), sSearch, vbTextCompare) > 0 Then iMatches = iMatches + 1 If iMatch = -1 Then iMatch = iCounter sMatchMessage = sMatchMessage + CStr(iCounter) + ": " + sSheets(iCounter) + vbCrLf End If Next iCounter Select Case iMatches Case 0 'No Matches MsgBox "No Match Found for " + sSearch Case 1 '1 match activate the sheet Application.ActiveWorkbook.Sheets(iMatch).Activate Case Else 'More than 1 match. Ask them which sheet to go to sGet = -1 sPrompt = "More than one match found. Please enter number from following list" sPrompt = sPrompt + "to display the sheet" + vbCrLf + vbCrLf + sMatchMessage sPrompt = sPrompt + vbCrLf + vbCrLf + "Enter blank to cancel" sGet = InputBox(sPrompt, "Please select one") If Trim(sGet) = "" Then Exit Sub sPrompt = "Value must be a number" + vbCrLf + vbCrLf + sPrompt Do While IsNumeric(sGet) = False sGet = InputBox(sPrompt, "Please select one") If Trim(sGet) = "" Then Exit Sub Loop iMatch = CInt(sGet) Application.ActiveWorkbook.Sheets(iMatch).Activate End Select End Sub
为了好玩,我尝试用尽可能少的循环行来实现这一点
在Utilizedfilter
下使用范围名称、xlm和VBS,以提供与上面相同的多页搜索功能。
代码的大部分涉及纸张选择部分
Sub GetNAmes()
Dim strIn As String
Dim X
strIn = Application.InputBox("Search string", "Enter string to find", ActiveSheet.Name, , , , , 2)
If strIn = "False" Then Exit Sub
ActiveWorkbook.Names.Add "shtNames", "=RIGHT(GET.WORKBOOK(1),LEN(GET.WORKBOOK(1))-FIND(""]"",GET.WORKBOOK(1)))"
X = Filter([index(shtNames,)], strIn, True, 1)
Select Case UBound(X)
Case Is > 0
strIn = Application.InputBox(Join(X, Chr(10)), "Multiple matches found - type position to select", , , , , 1)
If strIn = "False" Then Exit Sub
On Error Resume Next
Sheets(CStr(X(strIn))).Activate
On Error GoTo 0
Case 0
Sheets(X(0)).Activate
Case Else
MsgBox "No match"
End Select
End Sub
问题内容: 在Java中,我们使用以下程序包以编程方式创建excel文档: 如果尝试设置工作表的名称(不是文件,而是内部Excel工作表),则在以下情况下会出现错误: 名称超过31个字符 名称包含以下任何字符:/ \ *?[] 但是,在创建具有以下工作表名称的文档后: @#$%&()+〜`“’:;,。| 没有错误输出,并且在Java中一切正常。当您在Office 2003中打开excel文件时,它
本文向大家介绍excel-vba 检索活动工作簿中的所有工作表名称,包括了excel-vba 检索活动工作簿中的所有工作表名称的使用技巧和注意事项,需要的朋友参考一下 示例
问题内容: MySQL具有方便的功能: 这可用于为应用程序创建简单但非常具体的基于名称的锁。但是,它需要数据库连接。 我有很多情况,例如: 简单地同步此方法是没有意义的,因为,例如,如果在此期间同时为用户B调用了此方法,则用户B无需等待用户A完成操作就可以开始操作,而只需为用户进行操作A和功能X的组合需要等待。 使用MySql锁,我可以执行以下操作: 由于Java锁定基于对象,因此似乎需要创建一个
在谷歌表单中,我有一个脚本,用于为提交的每个谷歌表单创建一个新表单。它应该基于最后一列G列(不是表单提交列)创建一个名为的新工作表。然后,它从最后一行和标题行获取信息,并将其复制到所创建工作表的前两行。它还将公式添加到单元格中,以将信息放入列中(转置),并根据创建的工作表对其进行格式化。 现在它正在创建工作表并复制公式和格式,但没有给它正确的名称或提取最后一行信息。 请帮忙~查尔斯 我复制了以下代
下面的代码用于获取excel文件(.xlsx)的工作表名称 上面的代码存在的问题是,为一个9MB大小的文件创建需要占用大量内存(~700MB)&时间很长(5-6s)。即使将设置为也不会释放占用的内存(我知道可能被调用,也可能不被调用&JVM不会仅仅因为我将变量设置为null而释放内存) 我确实浏览了Workbook,XSSFWorkbook&根据我的理解,没有任何方法可以帮助我获得内存印记较低的工