2016-09-14 78 views
1

我有4张,说...,如何在VBA中的多个工作表中选择相同的范围?

STP1 
STP2 
STP3 
STP4 
STP5 

我想更新在同一时间全部5张的所有D3细胞。

我想这样..,

Worksheets(Array("STP1", "STP2", "STP3", "STP4", "STP5")).Select 
    Worksheets(Array("STP1", "STP2", "STP3", "STP4", "STP5")).Range("D3").Select 
    If Worksheets(Array("STP1", "STP2", "STP3", "STP4", "STP5").Range("D3").Offset(0, 0) = "" Then 
    Worksheets(Array("STP1", "STP2", "STP3", "STP4", "STP5")).Range("D3").Select.End(xlDown).Select 
    End If 
    ActiveCell.Offset(0, 0).Select 
    ActiveCell.Value = Eng 

但这不工作了...... 任何人都可以请帮我在这里...

+0

通过所有纸张循环不好? –

+0

你的意思是这很好?但在这里我需要写代码5次..所以这些方式 –

+0

看到我的答案在下面的代码(不要以为它太长) –

回答

1

此代码是否太长(循环显示所有表格),使用Select Case,您可以在其中添加尽可能多的表格。

(这是更好地避免选择细胞)

Option Explicit 

Sub SelectSheets() 

Dim Sht    As Worksheet 

For Each Sht In ThisWorkbook.Sheets 
    Select Case Sht.Name 
     Case "STP1", "STP2", "STP3", "STP4", "STP5" 

      If Sht.Range("D3") = "" Then 
       Sht.Range("D" & Sht.Cells(Sht.Rows.Count, "D").End(xlUp).Row).Value = Eng 
      Else 
       Sht.Range("D3").Value = Eng 
      End If 

    End Select 

Next Sht 

End Sub 
+0

这是工作......非常感谢..帮助我 –

+0

@SwethaReddy你'欢迎,谢谢接受我的回答 –

1

考虑:

Sub Macro1() 
    Sheets(Array("STP1", "STP2", "STP3", "STP4", "STP5")).Select 
    Sheets("STP1").Activate 
    Range("D3").Select 
    ActiveCell.Value = "whatever" 
End Sub 

(但我会使用一个循环,而不是Selects

相关问题