excel - Excel 的 if 语句中的三个与 (&)

标签 excel vba if-statement

我试图删除所有工作表,但在工作簿中使用“and's”到“if...then”语句中删除三个工作表,但是正在删除其中一个。我写的内容如下:

Sub delete()

For Each Sheet In Application.Worksheets

Application.DisplayAlerts = False

If (Sheet.Name <> "Close Price" And Sheet.Name <> "Parameters" And Sheet.Name <> "Stock") Then

  Sheet.delete

End If

Next Sheet

Application.DisplayAlerts = True

End Sub

我还尝试了以下方法:

Sub delete()

For Each Sheet In Application.Worksheets

Application.DisplayAlerts = False

If (Sheet.Name <> "Close Price" And Sheet.Name <> "Parameters") Then
  If (Sheet.Name <> "Stock") Then

  Sheet.delete

  End If
End If

Next Sheet

Application.DisplayAlerts = True

End Sub

但也不起作用。它尊重“收盘价”和“参数”工作表,但不尊重“股票”工作表。

你知道我该如何解决吗?

非常感谢,祝一切顺利。 grd_aa

最佳答案

可以使用工作表名称数组立即删除工作表。在 For-Each 循环中,将要删除的工作表名称收集到一个数组中。然后只需调用 Worksheets(sheetsToDeteleArrayHere).delete 即可立即删除数组中的所有工作表。 HTH

注意:使用 Trim(sheet-name) 可确保前导和/或结尾空格不属于比较的一部分。)

Sub delete()
    Dim sheet
    Dim sheetsToDetele

    Application.DisplayAlerts = False

    For Each sheet In Application.Worksheets

        If Trim(sheet.name) = "Close Price" Then GoTo continue
        If Trim(sheet.name) = "Parameters" Then GoTo continue
        If Trim(sheet.name) = "Stock" Then GoTo continue

        If IsArray(sheetsToDetele) Then
            ReDim Preserve sheetsToDetele(1 To UBound(sheetsToDetele) + 1)
        Else
            ReDim sheetsToDetele(1 To 1)
        End If

        sheetsToDetele(UBound(sheetsToDetele)) = sheet.name

continue:
    Next sheet

    If Not IsArray(sheetsToDetele) Then _
        Exit Sub

    Application.Worksheets(sheetsToDetele).delete

    Application.DisplayAlerts = True

End Sub

关于excel - Excel 的 if 语句中的三个与 (&),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27721683/

相关文章:

c# - 从单元格值中获取列号,openxml

Excel VBA 将特定单元格复制并粘贴到另一个工作表

vba - 命名范围的语法错误

javascript - jQuery if 语句取决于 px 中的宽度

c++ - 有没有更好的方法可以编写这个程序?

javascript - 数组不适用于 If 语句

vba - 如何用英文命名一个excel表

java - 如何在java中将ms-Excel文件转换为Pdf?

vba - 打开 adobe pdf 并通过添加文本框来编辑页面

vba - Word VBA 查找并突出显示匹配项