excel - 我怎样才能停止这个 vba 循环?
问题描述
我正在研究一个宏,以在工作簿中的所有工作表中循环我的步骤,如下所示。但是,它出现了一个错误:
运行时错误“1004”:“工作表类的选择方法失败”
Sub WorksheetLoopFormat()
Dim WS_Count As Integer
Dim i As Integer
' Set WS_Count equal to the number of worksheets in the active
' workbook.
WS_Count = ActiveWorkbook.Worksheets.Count
' Begin the loop.
For i = 2 To WS_Count
Sheets(i).Select
Range("C:C,G:G,I:I,AN:AN").Select
Range("AN1").Activate
Selection.Copy
Sheets.Add After:=ActiveSheet
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C30").Select
Sheets(i).Select
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.Delete
Next i
End Sub
希望有人能帮帮我!!非常感谢!!
解决方案
在我看来,以下所有内容都可以帮助您构建结构良好的代码:
Option Explicit
Sub LoopSheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
With ws
Debug.Print .Name
End With
Next
End Sub
Sub AddSheet()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets.Add(After:= _
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ws.Name = "Test"
End Sub
Sub Copy_Paste()
Sheet1.Range("A1:D1").Copy Sheet2.Range("A1:D1")
End Sub
Sub DeleteSheet()
ThisWorkbook.Worksheets("Test").Delete
End Sub
推荐阅读
- concurrency - 如何在非阻塞系统中处理货币交易?
- node.js - How can I restore node modules for multiple platforms?
- ide - 我可以有 CLion 项目窗格着色的图例吗?
- java - Univocity - 解析 CSV 时检测缺失的列
- html - 如何在 CSS 中使用 ::before 和 ::after 将形状(变换)相互叠加?边缘不会在背景上显示形状
- javascript - 如何使用 D3 和 javascript 从 csv 创建交互式可折叠树图?
- python - 在 Windows 上通过 Apache Lounge 部署烧瓶应用程序时出现内部服务器错误
- excel - 从另一个单元格复制数据(如果语句,也许?)
- typescript - 检查 null / undefined 的打字稿函数
- python - 什么样的过滤器适合在 OpenCV 中检测土壤上的裂缝?