vba 把workbook中每个sheet的A1单元格的内容放到一个数组中去,并转置黏贴value到sheet1的A1列
时间: 2024-12-13 08:14:53 浏览: 7
matlab将多个excel读取并存到一个excel的不同sheet中.zip
在VBA中,可以使用For Each循环遍历工作簿中的每一个工作表,并将每个工作表的A1单元格内容添加到一个一维数组中。然后,再通过Transpose方法将数组转置,最后将结果粘贴到Sheet1的A1列。以下是一个示例代码:
```vba
Sub CollectDataFromEachSheetToArrayAndPaste()
Dim wb As Workbook
Dim ws As Worksheet
Dim arr() As Variant ' 定义一个动态大小的一维数组
Dim i As Long
' 打开或激活当前工作簿
Set wb = ActiveWorkbook
If wb Is Nothing Then Set wb = Workbooks.Open(Filename:="你的文件路径") ' 如果没有激活,替换为你的文件路径
' 清空数组
ReDim arr(1 To 0)
' 遍历每个工作表
For Each ws In wb.Worksheets
If ws.Name <> "Sheet1" ' 不包括Sheet1(如果你不想复制它本身)
arr(i + 1) = ws.Range("A1").Value ' 将A1单元格的值添加到数组
i = i + 1
End If
Next ws
' 转置数组并复制到Sheet1的A1开始区域
arr = Application.Transpose(arr)
ws.Cells(1, 1).Resize(UBound(arr), 1) = arr ' 或者直接 ws.Range("A1").Resize(UBound(arr), 1) = arr
' 提示操作完成
MsgBox "数据已复制至Sheet1的A1列"
' 关闭工作簿,如果不需要保持打开状态
wb.Close SaveChanges:=True
End Sub
```
请确保替换代码中的“你的文件路径”为你实际的工作簿路径。
阅读全文