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 提取數(shù)據(jù)() 4. 5. '原表“庫存單.xls”不是很規(guī)范,現(xiàn)在需要把原表的數(shù)據(jù)提取整理到“匯總.xls”中 6. '原表數(shù)據(jù)很多,這里只截取了部分表格及代碼 7. 8. Dim DataWorkbook As Workbook '庫存單.xls工作簿 9. Dim DataSheet As Worksheet, DataSheetName As String 'DataSheet=當(dāng)前操作的工作表,DataSheetName=當(dāng)前操作工作表的表名 10. Dim HuizongSheet As Worksheet '匯總單工作表 11. Dim Goods As Range, GoodCount As Long 12. Dim GoodTime As String '進(jìn)貨時間 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 '產(chǎn)品計(jì)數(shù)歸零 25. 26. For Each DataSheet In DataWorkbook.Sheets '遍歷所有庫存單工作表 27. 28. '遍歷每個庫存單工作表的“總數(shù)”列第二行到最后一個非空行,好像這里不能取到正確的值 29. For Each Goods In DataSheet.Range([F2], Cells(Rows.Count, "F").End(xlUp)).Cells 30. If IsNumeric(Goods.Value) Then '當(dāng)“總數(shù)”單元格為數(shù)值時,判定為找到一個產(chǎn)品(不以產(chǎn)品名稱為基準(zhǔn)的原因是:有的產(chǎn)品沒有產(chǎn)品名稱) 31. GoodCount = GoodCount + 1 '產(chǎn)品數(shù)加1 32. 33. '獲取庫存單中的產(chǎn)品名稱,填充到匯總單的A列 34. HuizongSheet.Range("A" & GoodCount).Value = DataSheet.Name & " - " & DataSheet.Range("C" & Goods.Row).Value 35. 36. '獲取庫存單中的該產(chǎn)品的所有進(jìn)貨時間,填充到匯總單的B列 37. GoodTime = "進(jìn)貨時間:" 38. For i = Goods.Row To Goods.Offset(1, 0).Row - 1 '以合并單元格Goods所占的行區(qū)域?yàn)榛鶞?zhǔn)循環(huán) 39. GoodTime = GoodTime & " " & DataSheet.Range("H" & i).Value '循環(huán)獲取進(jìn)貨時間 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 激活單元格區(qū)域() 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("請輸入要查詢的內(nèi)容:") 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 |
|