|
发表于 2015-11-18 09:49
|
显示全部楼层
本楼为最佳答案
- Sub 打开指定文件() '用文件选择界面打开文件
- Dim Fil
- ChDir ThisWorkbook.Path
- Fil = Application.GetOpenFilename(filefilter:="EXCEL 工作表(*.xlsx;*.xlsm;*.xls),*.xlsx;*.xlsm;*.xls")
- If Fil = False Then MsgBox "请选择文件!": Exit Sub
- Set wb = Workbooks.Open(Fil) '打开文件
- Set sh = wb.Sheets(1)
- arr = sh.[a1].CurrentRegion
- wb.Close False
-
- Set d = CreateObject("scripting.dictionary")
- For j = 1 To UBound(arr, 2) '信息源的表头内容和列号相关联
- d(arr(1, j)) = j
- Next
- brr = Range("a3:e" & UBound(arr) + 4)
- For i = 2 To UBound(arr)
- brr(i, 1) = i - 1
- brr(i, 2) = arr(i, d(brr(1, 2)))
- brr(i, 3) = arr(i, d(brr(1, 3)))
- brr(i, 4) = arr(i, d(brr(1, 4)))
- brr(i, 5) = arr(i, d(brr(1, 5)))
- Next
- [a3].Resize(UBound(brr), 5) = brr
- End Sub
复制代码 |
评分
-
查看全部评分
|