2016-09-14 77 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

相關問題