我有4张纸,说......,
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 :(得分:1)
考虑:
Sub Macro1()
Sheets(Array("STP1", "STP2", "STP3", "STP4", "STP5")).Select
Sheets("STP1").Activate
Range("D3").Select
ActiveCell.Value = "whatever"
End Sub
(但我会使用循环而不是Selects
)
答案 1 :(得分: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