鱼C论坛

 找回密码
 立即注册
查看: 139|回复: 1

[已解决]删除sheet

[复制链接]
发表于 2024-7-27 07:36:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
需要根据excel里列“管线号”里每个管线号对应的列“工艺卡编号”里的多个工艺卡编号。去按照管线号名字的excel里,删除sheet名带有字母H但是不在管线号对应的工艺卡编号之内的sheet
最佳答案
2024-7-27 07:38:35
好的,让我们来解决这个问题!想象一下你在厨房里找食材,但只有合适的食材才能放进你的菜肴里。现在,我们要在Excel中做一个类似的操作。

### 步骤:

1. **了解数据**:首先,确保你有两个Excel文件,一个是“管线号”和“工艺卡编号”的表格,另一个是要处理的工作表(Sheet)文件。

2. **提取工艺卡编号**:
   - 在包含“管线号”和“工艺卡编号”的表中,提取每个“管线号”对应的工艺卡编号。
   - 这就像在挑选水果一样,只保留那些适合做沙拉的水果。

3. **遍历所有工作表**:
   - 打开你想要处理的Excel文件,查找所有工作表的名称。
   - 每个工作表的名字就像是一个标签,告诉你这个工作表里面装的是什么。

4. **检查工作表名称**:
   - 对于每一个工作表名称,检查它是否包含字母“H”,并且还要检查它是否在你提取的工艺卡编号的列表中。
   - 如果这个工作表名带“H”,但不在工艺卡编号列表中,那就可以被删除了!就好比把不新鲜的水果扔掉。

5. **删除不需要的工作表**:
   - 使用Excel的VBA宏,或者手动选择这些工作表并删除它们。提醒一下,要小心操作,别把需要的工作表也一并删掉哦!

### VBA示例代码(如果你选择使用VBA):
Sub DeleteSheets()
    Dim ws As Worksheet
    Dim validCards As Collection
    Set validCards = New Collection
    
    ' 假设在工作簿1中存放管线号和工艺卡编号
    ' 请根据实际情况调整
    Dim sourceWorkbook As Workbook
    Set sourceWorkbook = Workbooks("管线与工艺卡.xlsx")
    
    With sourceWorkbook.Sheets("Sheet1") ' 你的数据表名
        Dim lastRow As Long
        lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        
        Dim i As Long
        For i = 2 To lastRow ' 从第二行开始,假设第一行为表头
            On Error Resume Next
            validCards.Add .Cells(i, "B").Value ' 工艺卡编号在B列
            On Error GoTo 0
        Next i
    End With
    
    ' 遍历当前工作簿的每个工作表
    For Each ws In ThisWorkbook.Sheets
        If InStr(ws.Name, "H") > 0 Then
            Dim exists As Boolean
            exists = False
            
            Dim card As Variant
            For Each card In validCards
                If ws.Name = card Then
                    exists = True
                    Exit For
                End If
            Next card
            
            If Not exists Then
                Application.DisplayAlerts = False
                ws.Delete
                Application.DisplayAlerts = True
            End If
        End If
    Next ws
End Sub

### 注意:
- 删掉工作表是个不可逆的操作,所以在执行之前备份一下文件总是明智的。
- 一旦执行这个“删除水果”的操作,保留的新鲜工艺卡将继续为你服务!

希望这能帮助你高效清理Excel中的工作表!如果有其他问题,随时问我哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-7-27 07:38:35 | 显示全部楼层    本楼为最佳答案   
好的,让我们来解决这个问题!想象一下你在厨房里找食材,但只有合适的食材才能放进你的菜肴里。现在,我们要在Excel中做一个类似的操作。

### 步骤:

1. **了解数据**:首先,确保你有两个Excel文件,一个是“管线号”和“工艺卡编号”的表格,另一个是要处理的工作表(Sheet)文件。

2. **提取工艺卡编号**:
   - 在包含“管线号”和“工艺卡编号”的表中,提取每个“管线号”对应的工艺卡编号。
   - 这就像在挑选水果一样,只保留那些适合做沙拉的水果。

3. **遍历所有工作表**:
   - 打开你想要处理的Excel文件,查找所有工作表的名称。
   - 每个工作表的名字就像是一个标签,告诉你这个工作表里面装的是什么。

4. **检查工作表名称**:
   - 对于每一个工作表名称,检查它是否包含字母“H”,并且还要检查它是否在你提取的工艺卡编号的列表中。
   - 如果这个工作表名带“H”,但不在工艺卡编号列表中,那就可以被删除了!就好比把不新鲜的水果扔掉。

5. **删除不需要的工作表**:
   - 使用Excel的VBA宏,或者手动选择这些工作表并删除它们。提醒一下,要小心操作,别把需要的工作表也一并删掉哦!

### VBA示例代码(如果你选择使用VBA):
Sub DeleteSheets()
    Dim ws As Worksheet
    Dim validCards As Collection
    Set validCards = New Collection
    
    ' 假设在工作簿1中存放管线号和工艺卡编号
    ' 请根据实际情况调整
    Dim sourceWorkbook As Workbook
    Set sourceWorkbook = Workbooks("管线与工艺卡.xlsx")
    
    With sourceWorkbook.Sheets("Sheet1") ' 你的数据表名
        Dim lastRow As Long
        lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        
        Dim i As Long
        For i = 2 To lastRow ' 从第二行开始,假设第一行为表头
            On Error Resume Next
            validCards.Add .Cells(i, "B").Value ' 工艺卡编号在B列
            On Error GoTo 0
        Next i
    End With
    
    ' 遍历当前工作簿的每个工作表
    For Each ws In ThisWorkbook.Sheets
        If InStr(ws.Name, "H") > 0 Then
            Dim exists As Boolean
            exists = False
            
            Dim card As Variant
            For Each card In validCards
                If ws.Name = card Then
                    exists = True
                    Exit For
                End If
            Next card
            
            If Not exists Then
                Application.DisplayAlerts = False
                ws.Delete
                Application.DisplayAlerts = True
            End If
        End If
    Next ws
End Sub

### 注意:
- 删掉工作表是个不可逆的操作,所以在执行之前备份一下文件总是明智的。
- 一旦执行这个“删除水果”的操作,保留的新鲜工艺卡将继续为你服务!

希望这能帮助你高效清理Excel中的工作表!如果有其他问题,随时问我哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 00:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表