当前位置:编程学习 > VB >>

各位大哥大姐,如何算出一个正在打开的excel的sheet个数,并判断sheet是否重名?着急!!

如上: --------------------编程问答-------------------- 可以直接用Worksheets.Count来取得sheet个数
至于sheet是否重名, excel本身就不会允许sheet重名的, 所以没有这个必要判断是否重名吧 --------------------编程问答-------------------- 主要是要新插入一个sheet,所以要判断重名,有代码吗??能给看一下吗?? --------------------编程问答-------------------- 下面举个判断新sheet名字是否和既有sheet名字重复的一段sample, 如果重复,抛一个messagebox.
-----------------------------------------------------
Dim mysheet As Worksheet '声明一个worksheet对象
Dim i As Integer '循环变量
Dim newSheetName As String '新建sheet名字

i = 1
newSheetName = "aaaaaa"

For Each mysheet In ActiveWorkbook.Sheets
    If newSheetName = Worksheets(mycount).Name Then
        MsgBox "sheet名字重复"
    End If
    mycount = mycount + 1
Next
----------------------------------------------------- --------------------编程问答-------------------- sorry, 上面的mycount应该是i,写错了 --------------------编程问答-------------------- 多此一举,直接用下面的就可以了:

...

For Each mysheet In ActiveWorkbook.Sheets
    If  mysheet.Name=newSheetName  Then
        MsgBox "sheet名字重复"
        exit for
    End If
Next
--------------------编程问答-------------------- 我的代码太冗余了,ChinaOBS的很简单,赞 --------------------编程问答-------------------- 哈哈哈,顶顶 --------------------编程问答-------------------- For Each mysheet In ActiveWorkbook.Sheets
If mysheet.Name=newSheetName Then
MsgBox "sheet名字重复"
exit for
End If
Next --------------------编程问答-------------------- sheet个数如何算出呢??? --------------------编程问答-------------------- ActiveWorkbook.Sheets.count --------------------编程问答-------------------- 给你两个函数,分别用来判断 Sheet 的个数、Sheet 名称是否存在

'功 能: 返回 Sheet 的个数
Function GetSheetCount() As Long
    GetSheetCount = ActiveWorkbook.Sheets.Count
End Function


'功 能: 判断指定的 Sheet 名称是否存在
'输 入:sName,需要判断的 Sheet 名称
'输 出:如果 sName 已经存在,则返回 True,否则返回 False
'注 意:在名称匹配时统统将名称转换为大写(UCase)来匹配
Function IsNameExist(ByVal sName As String) As Boolean
    Dim bRet As Boolean
    Dim i As Long
    
    sName = UCase(sName)
    For i = 1 To ActiveWorkbook.Sheets.Count
        If UCase(ActiveWorkbook.Sheets(i).Name) = sName Then
            bRet = True
            Exit For
        End If
    Next
    IsNameExist = bRet
End Function
--------------------编程问答-------------------- Debug.Print ThisWorkbook.Sheets.Count sheet个数


Public Sub ck() '判断能否用asdf做新的sheet名
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets.Add
On Error GoTo err1
sh.Name = "asdf"
Exit Sub
err1:
MsgBox Err.Description
End Sub
--------------------编程问答-------------------- 大家的方法都不错 --------------------编程问答-------------------- 主要是分高
补充:VB ,  VBA
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,