我有一个包含50个标签的Excel文件(每个标签名为国家/地区。例如澳大利亚,奥地利等)。我需要创建一个摘要表,列出所有国家/地区名称,并为每个国家/地区添加2个值,这些值指的是该国家/地区的每个相应标签中的2个单元格(例如E20,F20)
以下是摘要标签和国家/地区标签的图像。我手动将单元格引用到摘要选项卡。如何使用公式/宏来为50个选项卡执行此操作?
答案 0 :(得分:1)
正如拉尔夫提到的那样,你应该采取以下措施:
public sub example1()
r=2
sheets("Summary").Range("A1") = "SheetName"
sheets("Summary").Range("B1") = "Sales"
sheets("Summary").Range("C1") = "Profit"
For each sh in thisworkbook.sheets
'Sheet Name
sheets("Summary").Range("A" & r) = sh.Name
'Sales
sheets("Summary").Range("B" & r) = sheets(sh.Name).range("A2")
'Profit
sheets("Summary").Range("C" & r) = sheets(sh.Name).range("B2")
'Increment Row number
r=r+1
Next sh
END SUB
答案 1 :(得分:0)
或者您可以尝试这样的事情......
Sub CreateSummary()
Dim sws As Worksheet, ws As Worksheet
Application.ScreenUpdating = False
Set sws = Sheets("Summary")
sws.UsedRange.Cells.Clear
With sws.Range("A1:C1")
.Value = Array("Country", "Sales", "Profit")
.Font.Bold = True
.Font.Size = 14
End With
For Each ws In Worksheets
If Not ws Is sws Then
lr = sws.Cells(Rows.Count, 1).End(xlUp).Row + 1
ws.Range("E20:F20").Copy sws.Range("B" & lr)
sws.Range("A" & lr).Value = ws.Name
End If
Next ws
sws.UsedRange.Columns.AutoFit
sws.Range("A1").CurrentRegion.Borders.Color = vbBlack
Application.ScreenUpdating = True
End Sub