我希望有人可以帮助我,因为我尝试了其他站点的许多建议,但是找不到解决方案。
我有一个仪表板电子表格和近30个以上的部门电子表格(请参阅所附快照)。
选择“部门”名称(部门名称以及相应的工作表和电子表格名称相同)后,哪一种是获取数据的最佳方法?
可以请我帮忙vba或宏吗?非常感谢你!
从其他部门收到的电子表格:
摘要/仪表板电子表格
答案 0 :(得分:0)
尝试这个:
首先,您需要一个包含所有图纸的列表。为此,请使用以下功能:
Public Function SheetsName()
Dim Arr() As String
Dim i As Integer
ReDim Arr(Sheets.Count - 1)
For i = 0 To Sheets.Count - 1
Arr(i) = Sheets(i + 1).Name
Next i
SheetsName = Application.WorksheetFunction.Transpose(Arr)
End Function
此函数将返回一个包含所有图纸的数组。在不使用的一列中的单元格中选择相同数量的工作表,然后键入:= SheetsName()并按Ctrl + Shift + Enter。您将获得此范围内的数据表的列表。
稍后,在单元格Data Validation
上使用D2
,选择列表并选择所有图纸的范围。
然后使用此小步骤进行复制:
Sub Test()
Dim SourceSheet As Worksheet
Dim TargetSheet As Worksheet
Dim LastRow As Long
Dim LastCol As Long
Dim i As Long
With ThisWorkbook
Worksheets("Sheet1").Activate
Set SourceSheet = Worksheets(Range("D2").Value2)
Set TargetSheet = Worksheets("Sheet1")
End With
LastRow = SourceSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
LastCol = SourceSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
For i = 1 To LastRow
For j = 1 To LastCol
SourceSheet.Cells(i, j).Copy Destination:=TargetSheet.Cells(i + 9, j)
Next j
Next i
End Sub
仅此而已。 复制指令不适用于合并的单元格。
希望有帮助