一、強烈建議初學者理清Excel對象模型,在學寫vba代碼時,按層級來書寫
本問題相關的對象層級為workbook-worksheet-range
二、關于引用單元格
DimoBookAsWorkbook
DimoSheetAsWorksheet
DimoRangeAsRange
SetoBook=Application.Workbooks("目標工作簿")'這里的Application指當前VBA代碼所屬的工作簿所在的Excel程序進程實例
SetoSheet=oBook.Worksheets("目標工作表")
'以下開始引用單元格
'1.引用單個單元格
SetoRange=oSheet.Range("A1")'常規(guī)方式
SetoRange=oSheet.Range("A"&1)'動態(tài)列號
SetoRange=oSheet.Cells(1,1)'行號+列號,可動態(tài)
SetoRange=oSheet.Cells(1,"A")'行號+列號
SetoRange=oSheet.[A1]'不建議使用
'Cells方法的缺點是無成員提醒
'2.引用連續(xù)單元格區(qū)域
SetoRange=oSheet.Range("A1:B2")'常規(guī)方式
SetoRange=oSheet.Range(oSheet.Cells(1,1),oSheet.Cells(2,2))'長是長一點,某些時候還挺實用
SetoRange=oSheet.Range("A1","B2")'使用率低
SetoRange=oSheet.Range("A1").Resize(2,2)'極其靈活,配合Offset方法使用會更靈活
'3.引用不連續(xù)單元格區(qū)域
SetoRange=oSheet.Range("A1,B2:C3,D4")
SetoRange=Application.Union(oSheet.Range("A1"),oSheet.Range("B2:C3"),oSheet.Range("D4"))
'4.當前選定的單元格
SetoRange=Selection.Range
'5.行和列
SetoRange=oSheet.Rows(1)
SetoRange=oSheet.Columns(1)
'6.常用應用
SetoRange=oSheet.UsedRange'已使用的矩形單元格區(qū)域
SetoRange=oSheet.Range("A"&oSheet.Rows.Count).End(xlUp)'第A列,最后一個非空白單元格
SetoRange=oSheet.Cells(1,oSheet.Columns.Count).End(xlToLeft)'第1行,最后一個非空白單元格
希望回答對你有幫助