Vba 跨图纸应用宏特定范围
inn数据说明 1.表格和宏 二,Vba 跨图纸应用宏特定范围,vba,excel,Vba,Excel,inn数据说明 1.表格和宏 二, 1中的表1。[表和宏]显示了未应用宏的主表 宏的工作原理如下:选择要应用宏的范围,然后使用NA值所在列中的上一个(以上)数值更改NA值 通过选择范围B3:D11并运行宏生成表3(即,在所示图片中,宏应用于以下范围,然后移到右侧) 通过选择范围B4:D11并运行宏生成表2(即,在所示图片中,宏应用于以下范围,然后向右移动) 我试过的 我曾尝试在excel中运行record宏,试图加快速度,但没有任何运气 发行 我有与表1所示相同的数据,在4张表格中的
- 1中的表1。[表和宏]显示了未应用宏的主表
- 宏的工作原理如下:选择要应用宏的范围,然后使用NA值所在列中的上一个(以上)数值更改NA值
- 通过选择范围B3:D11并运行宏生成表3(即,在所示图片中,宏应用于以下范围,然后移到右侧)
- 通过选择范围B4:D11并运行宏生成表2(即,在所示图片中,宏应用于以下范围,然后向右移动)
- 我曾尝试在excel中运行record宏,试图加快速度,但没有任何运气
- 我有与表1所示相同的数据,在4张表格中的完全相同的位置(见[2.excel中的数据文件,包含宏和表格])。因此,我想知道如何在所有工作表上运行宏,以生成表2中的值,而不包括标题
- 我有更多的表,我需要应用这个
选择运行代码
将过程名称更改为Sub-FixData(rng作为范围)
将代码中的选择更改为rng
编写另一个过程,将范围传递给该过程:
Public Sub Test()
With ThisWorkbook
FixData .WorkSheets("Sheet1").Range("B3:D11")
FixData .WorkSheets("Sheet2").Range("B4:D11")
End With
End Sub
将所有代码放在正常模块中
要在工作簿中的所有工作表上运行代码,请使用以下代码。要排除某些工作表,请包括标有“”***
的行
Public Sub FixOnAllSheets()
Dim wrkSht As Worksheet
For Each wrkSht In ThisWorkbook.Worksheets
Select Case wrkSht.Name '**
Case "Sheet1", "Sheet2" '**
'Do nothing or do something else.
Case Else '**
FixData wrkSht.Range("B3:D11")
End Select '**
Next wrkSht
End Sub
嗨,非常感谢。当我添加另一个过程时,代码会起作用。但是,我想知道如何将它同时应用于所有的工作表?我有大约2000张我需要用它。我是否必须手动键入FixData.WorkSheets(“Sheet1”).Range(“B3:D11”)FixData.WorkSheets(“Sheet2”).Range(“B4:D11”)直到sheet2500?或者有更简单的方法吗?我已经在我的答案中添加了如何在工作簿中的所有工作表上运行代码。你在每张纸上看到的范围是否相同?如果工作不完美,那就需要一些额外的代码!