1、选取一个单元格: Nlr=Activesheet.Cells.SpecialCells(xlLastCell).Row '最后一行
Sub tt()
Sub aaaa()Dim sh1, sh2 As WorksheetDim shName, cellValue As String'On Error Resume Next Set sh1 = Workbooks(1).Sheets(1)'Workbooks.Open Filename:="D:\_jack\Finance Report\Report Layout\TA Opex Report 2014.xlsx" Workbooks.Open Filename:="D:\_jack\Finance Report\Report Layout\Rolling PL Template v1 (2).xlsx" For i = 1 To Workbooks(2).Worksheets.Count Workbooks(2).Activate Set sh2 = ActiveWorkbook.Worksheets(i) sh2.Activate n = sh2.Name 'v = sh2.Cells(5, 7).Value 'G5单元格 v = sh2.Cells(4, 3).Value 'C4单元格 Workbooks(1).Activate sh1.Activate sh1.Cells(i, 1) = n sh1.Cells(i, 2) = v Next Workbooks(2).CloseEnd Sub
1. Option Explicit 2. 3. Sub 提取数据() 4. 5. '原表“库存单.xls”不是很规范,现在需要把原表的数据提取整理到“汇总.xls”中 6. '原表数据很多,这里只截取了部分表格及代码 7. 8. Dim DataWorkbook As Workbook '库存单.xls工作簿 9. Dim DataSheet As Worksheet, DataSheetName As String 'DataSheet=当前操作的工作表,DataSheetName=当前操作工作表的表名 10. Dim HuizongSheet As Worksheet '汇总单工作表 11. Dim Goods As Range, GoodCount As Long 12. Dim GoodTime As String '进货时间 13. Dim i As Long 14. 15. On Error Resume Next 16. Set DataWorkbook = Workbooks("库存单.xls") 17. If Err <> 0 Then 18. MsgBox "库存单.xls 文件没有打开!", vbExclamation 19. Exit Sub 20. End If 21. 22. Set HuizongSheet = Worksheets("汇总单") 23. 24. GoodCount = 0 '产品计数归零 25. 26. For Each DataSheet In DataWorkbook.Sheets '遍历所有库存单工作表 27. 28. '遍历每个库存单工作表的“总数”列第二行到最后一个非空行,好像这里不能取到正确的值 29. For Each Goods In DataSheet.Range([F2], Cells(Rows.Count, "F").End(xlUp)).Cells 30. If IsNumeric(Goods.Value) Then '当“总数”单元格为数值时,判定为找到一个产品(不以产品名称为基准的原因是:有的产品没有产品名称) 31. GoodCount = GoodCount + 1 '产品数加1 32. 33. '获取库存单中的产品名称,填充到汇总单的A列 34. HuizongSheet.Range("A" & GoodCount).Value = DataSheet.Name & " - " & DataSheet.Range("C" & Goods.Row).Value 35. 36. '获取库存单中的该产品的所有进货时间,填充到汇总单的B列 37. GoodTime = "进货时间:" 38. For i = Goods.Row To Goods.Offset(1, 0).Row - 1 '以合并单元格Goods所占的行区域为基准循环 39. GoodTime = GoodTime & " " & DataSheet.Range("H" & i).Value '循环获取进货时间 40. Next i 41. HuizongSheet.Range("B" & Goods).Value = GoodTime 42. 43. End If 44. Next Goods 45. Next DataSheet 46. 47. End Sub
.Sub 遍历工作表() Sub aaaa() Dim sh1, sh2 As Worksheet Dim shName, cellValue As String 'On Error Resume Next
Set sh1 = Workbooks(1).Sheets(1) 'Workbooks.Open Filename:="D:\_jack\Finance Report\Report Layout\TA Opex Report 2014.xlsx" Workbooks.Open Filename:="D:\_jack\Finance Report\Report Layout\Rolling PL Template v1 (2).xlsx"
For i = 1 To Workbooks(2).Worksheets.Count Workbooks(2).Activate Set sh2 = ActiveWorkbook.Worksheets(i) sh2.Activate n = sh2.Name 'v = sh2.Cells(5, 7).Value 'G5单元格 v = sh2.Cells(4, 3).Value 'C4单元格
Workbooks(1).Activate sh1.Activate sh1.Cells(i, 1) = n sh1.Cells(i, 2) = v
Next Workbooks(2).Close End Sub
Sub 激活单元格区域() Dim rgfirst As Range Dim rglast As Range Dim s As String Dim s1 As String Dim s2 As String On Error Resume Next s = Application.InputBox("请输入要查询的内容:") s1 = Split(s, ",")(0) s2 = Split(s, ",")(1) Set rgfirst = ActiveSheet.UsedRange.Find(s1) Set rglast = ActiveSheet.UsedRange.Find(s2) Range(rgfirst, rglast).Activate End Sub |
|
来自: daijinzhou > 《待分类》