欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      第1題不能輸入到Excel工作表的單元格中

      時間:2019-05-12 01:46:31下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《第1題不能輸入到Excel工作表的單元格中》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《第1題不能輸入到Excel工作表的單元格中》。

      第一篇:第1題不能輸入到Excel工作表的單元格中

      第1題()不能輸入到Excel工作表的單元格中

      答案:B:=20,12 選項:A:=“20,12” B:=20,12 C:20,12 D:=Sheet2!A1+12

      第2題______不是MPC對音頻處理能力的基本要求。

      答案:B:保存大容量聲波信號 選項:A:錄入聲波信號 B:保存大容量聲波信號 C:重放聲波信號 D:用MIDI技術合成音樂

      第3題______不是多媒體技術的典型應用。

      答案:D:計算機支持協(xié)同工作 選項:A:教育和培訓 B:娛樂和游戲 C:視頻會議系統(tǒng) D:計算機支持協(xié)同工作

      第4題“32位微型計算機”中的32指的是()

      答案:D:機器字長 選項:A:微機型號 B:內(nèi)存容量 C:運算速度 D:機器字長

      第5題7位二進制編碼的ASCII碼可表示的字符個數(shù)為()答案:D:128 選項:A:127 B:255 C:256 D:128

      第6題8個字節(jié)含二進制位()

      答案:D:64個 選項:A:8個 B:16個 C:32個 D:64個

      第7題BBS有兩種訪問方式:Telnet(遠程登錄)方式和004km.cn 選項:A:cn B:ch C:chn D:china

      第503題中國教育科研網(wǎng)的縮寫為:

      答案:B:CERNET 選項:A:ChinaNet B:CERNET C:CNNIC D:ChinaEDU

      第504題中英處理器(CPU)可直接讀寫的計算機部件是()答案:A:內(nèi)存 選項:A:內(nèi)存 B:硬盤 C:軟盤 D:外存

      第505題屬于計算機犯罪的是

      答案:D:以上皆是 選項:A:非法截取信息、竊取各種情報 B:復制與傳播計算機病毒、黃色影像制品和其他非法活動 C:借助計算機技術偽造篡改信息、進行詐騙及其他非法活動 D:以上皆是

      第506題屬于計算機犯罪類型的是

      答案:C:ABD都是 選項:A:非法截獲信息 B:復制與傳播計算機病毒 C:ABD都是 D:利用計算機技術偽造篡改信息

      第507題著作權的權利包括

      答案:B:人身權和財產(chǎn)權 選項:A:人身權 B:人身權和財產(chǎn)權 C:財產(chǎn)權 D:放棄權

      第508題專利權屬于

      答案:A:工業(yè)產(chǎn)權 選項:A:工業(yè)產(chǎn)權 B:著作權 C:商標權 D:專有權

      第509題字長16位的計算機,它表示()

      答案:A:數(shù)以16位二進制表示 選項:A:數(shù)以16位二進制表示 B:數(shù)以十六進制來表示 C:可處理16個字符串 D:數(shù)以兩個8進制表示

      第510題最早設計計算機的目的是進行科學計算機,但其主要的都是用于()答案:B:軍事 選項:A:科研 B:軍事 C:商業(yè) D:管理

      第二篇:Wps Excel2013工作表中輸入數(shù)據(jù)和編輯數(shù)據(jù)

      Wps Excel2013工作表中輸入數(shù)據(jù)和編輯數(shù)據(jù)

      1.輸入在活動單元格或在編輯欄中進行輸入

      2.輸入數(shù)值型文本a.分號+數(shù)字b.格式—單元格—數(shù)字—文本

      3.負數(shù)輸入:在文本輸入時加括號

      分數(shù)輸入:1/2為1月2日正確的0空格1/2

      第三篇:如何在Excel工作表中輸入公式和函數(shù)

      如何在Excel工作表中輸入公式和函數(shù)

      創(chuàng)建公式

      全部顯示

      全部隱藏

      公式就是對工作表中的數(shù)值進行計算的等式。公式要以等號(=)開始。例如,下面公式等于 3 乘以 2 再加上 5。

      =5 2*

      3創(chuàng)建簡單公式:=128 34

      5下面的公式包括運算符(運算符:一個標記或符號,指定表達式內(nèi)執(zhí)行的計算的類型。有數(shù)學、比較、邏輯和引用運算符等。)和常量(常量:不進行計算的值,因此也不會發(fā)生變化。例如,數(shù)字 210 以及文本“每季度收入”都是常量。表達式以及表達式產(chǎn)生的值都不是常量。)。示例公式 本選項的功能

      =128 345 128 加上 34

      5=5^2 5 的平方

      單擊需輸入公式的單元格。

      鍵入 =(等號)

      輸入公式內(nèi)容。

      按 Enter。

      創(chuàng)建一個包含引用或名稱的公式:=A1 2

      3以下公式中包含對其他單元格的相對引用(相對單元格引用:在公式中,基于包含公式的單元格與被引用的單元格之間的相對位置的單元格地址。如果復制公式,相對引用將自動調(diào)整。相對引用采用 A1 樣式。)以及這些單元格的名稱(名稱:代表單元格、單元格區(qū)域、公式或常量值的單詞或字符串。名稱更易于理解,例如,“產(chǎn)品”可以引用難于理解的區(qū)域“Sales!C20:C30”。)。包含公式的單元格稱為從屬單元格,因為其結果值將依賴于其他單元格的值。例如,如果單元格 B2 包含公式 =C2,則單元格 B2 就是從屬單元格。

      示例公式 本選項的功能

      =C2 使用單元格 C2 中的值

      =Sheet2!B2 使用 Sheet2 上單元格 B2 中的值

      =資產(chǎn)-債務 名為“資產(chǎn)”的單元格減去名為“債務”的單元格

      單擊需輸入公式的單元格。

      在編輯欄(編輯欄:位于 Excel 窗口頂部的條形區(qū)域,用于輸入或編輯單元格或圖表中的值或公式。編輯欄中顯示了存儲于活動單元格中的常量值或公式。)上,鍵入“=”(等號)。

      請執(zhí)行下列操作之一:

      若要創(chuàng)建引用,請選擇一個單元格、單元格區(qū)域、另一個工作表或工作簿中的位置。然后拖動所選單元格的邊框來移動單元格或拖動邊框上的角來擴展所選單元格區(qū)域。

      若要創(chuàng)建一個對命名區(qū)域的引用,請按 F3,在“粘貼名稱”框中選擇名稱,再單擊“確定”。

      按 Enter。

      創(chuàng)建一個包含函數(shù)的公式:=AVERAGE(A1:B4)

      下面的公式包含函數(shù)(函數(shù):函數(shù)是預先編寫的公式,可以對一個或多個值執(zhí)行運算,并返回一個或多個值。函數(shù)可以簡化和縮短工作表中的公式,尤其在用公式執(zhí)行很長或復雜的計算時。)。示例公式 本選項的功能

      =SUM(A:A)將 A 列的所有數(shù)字相加

      =AVERAGE(A1:B4)計算區(qū)域中所有數(shù)字的平均值

      單擊需輸入公式的單元格。

      若要使公式以函數(shù)開始,請單擊編輯欄(編輯欄:位于 Excel 窗口頂部的條形區(qū)域,用于輸入或編輯單元格或圖表中的值或公式。編輯欄中顯示了存儲于活動單元格中的常量值或公式。)上的“插入函數(shù)”。

      選定要使用的函數(shù)。請在“搜索函數(shù)”框中輸入對需要解決的問題的說明(例如,數(shù)值相加、返回 SUM 函數(shù)),或瀏覽“或選擇類別”框的分類。

      輸入?yún)?shù)(參數(shù):函數(shù)中用來執(zhí)行操作或計算的值。參數(shù)的類型與函數(shù)有關。函數(shù)中常用的參數(shù)類型包括數(shù)字、文本、單元格引用和名稱。)。若要將單元格引用作為參數(shù)輸入,請單擊“壓縮對話框” 以暫時隱藏該對話框。在工作表上選擇單元格,然后按“展開對話框”。

      完成輸入公式后,請按 Enter。

      創(chuàng)建一個帶有嵌套函數(shù)的公式:=IF(AVERAGE(F2:F5)

      第四篇:VBA代碼中引用Excel工作表中單元格區(qū)域的方式小結

      VBA代碼中引用Excel工作表中單元格區(qū)域的方式小結.txt大人物的悲哀在于他們需要不停地做出選擇;而小人物的悲哀在于他們從來沒有選擇的機會。男人因滄桑而成熟,女人因成熟而滄桑。男人有了煙,有了酒,也就有了故事;女人有了錢,有了資色,也就有了悲劇。在VBA代碼中引用Excel工作表中單元格區(qū)域的方式小結

      問題一:在VBA代碼中,如何引用當前工作表中的單個單元格(例如引用單元格C3)? 回答:可以使用下面列舉的任一方式對當前工作表中的單元格(C3)進行引用。(1)Range(“C3”)(2)[C3](3)Cells(3, 3)(4)Cells(3, “C”)(5)Range(“C4”).Offset(-1)Range(“D3”).Offset(,-1)Range(“A1”).Offset(2, 2)(6)若C3為當前單元格,則可使用:ActiveCell(7)若將C3單元格命名為“Range1”,則可使用:Range(“Range1”)或[Range1](8)Cells(4, 3).Offset(-1)

      ------------------問題二:在VBA代碼中,我要引用當前工作表中的B2:D6單元格區(qū)域,有哪些方式? 回答:可以使用下面列舉的任一方式對當前工作表中單元格區(qū)域B2:D6進行引用。(1)Range(“B2:D6”)(2)Range(“B2”, “D6”)(3)[B2:D6](4)Range(Range(“B2”), Range(“D6”))(5)Range(Cells(2, 2), Cells(6, 4))(6)若將B2:D6區(qū)域命名為“MyRange”,則又可以使用下面的語句引用該區(qū)域: ① Range(“MyRange”)② [MyRange](7)Range(“B2”).Resize(5, 3)(8)Range(“A1:C5”).Offset(1, 1)(9)若單元格B2為當前單元格,則可使用語句:Range(ActiveCell, ActiveCell.Offset(4, 2))(10)若單元格D6為當前單元格,則可使用語句:Range(“B2”, ActiveCell)

      ------------------問題三:在VBA代碼中,如何使用變量實現(xiàn)對當前工作表中不確定單元格區(qū)域的引用? 回答:有時,我們需要在代碼中依次獲取工作表中特定區(qū)域內(nèi)的單元格,這通常可以采取下面的幾種方式:

      (1)Range(“A” & i)(2)Range(“A” & i & “:C” & i)(3)Cells(i,1)(4)Cells(i,j)其中,i、j為變量,在循環(huán)語句中指定i和j的范圍后,依次獲取相應單元格。------------------問題四:在VBA代碼中,如何擴展引用當前工作表中的單元格區(qū)域? 回答:可以使用Resize屬性,例如:

      (1)ActiveCell.Resize(4, 4),表示自當前單元格開始創(chuàng)建一個4行4列的區(qū)域。(2)Range(“B2”).Resize(2, 2),表示創(chuàng)建B2:C3單元格區(qū)域。(3)Range(“B2”).Resize(2),表示創(chuàng)建B2:B3單元格區(qū)域。(4)Range(“B2”).Resize(, 2),表示創(chuàng)建B2:C2單元格區(qū)域。

      如果是在一個單元格區(qū)域(如B3:E6),或一個命名區(qū)域中(如將單元格區(qū)域B3:E6命名為“MyRange”)使用Resize屬性,則只是相對于單元格區(qū)域左上角單元格擴展區(qū)域,例如: 代碼Range(“C3:E6”).Resize(, 2),表示單元格區(qū)域C3:D6,并且擴展的單元格區(qū)域可不在原單元格區(qū)域內(nèi)。因此,可以知道Resize屬性是相對于當前活動單元格或某單元格區(qū)域中左上角單元格按指定的行數(shù)或列數(shù)擴展單元格區(qū)域。

      ------------------問題五:在VBA代碼中,如何在當前工作表中基于當前單元格區(qū)域或指定單元格區(qū)域處理其它單元格區(qū)域?

      回答:可以使用Offset屬性,例如:

      (1)Range(“A1”).Offset(2, 2),表示單元格C3。

      (2)ActiveCell.Offset(, 1),表示當前單元格下一列的單元格。(3)ActiveCell.Offset(1),表示當前單元格下一行的單元格。

      (4)Range(“C3:D5”).Offset(, 1),表示單元格區(qū)域D3:E5,即將整個區(qū)域偏移一列。從上面的代碼示例可知,Offset屬性從所指定的單元格開始按指定的行數(shù)和列數(shù)偏移,從而到達目的單元格,但偏移的行數(shù)和列數(shù)不包括指定單元格本身。

      ------------------問題六:在VBA代碼中,如何在當前工作表中引用交叉區(qū)域? 回答:可以使用Intersect方法,例如: Intersect(Range(“C3:E6”), Range(“D5:F8”)),表示單元格區(qū)域D5:E6,即單元格區(qū)域C3:E6與D5:F8相重迭的區(qū)域。

      ------------------問題七:在VBA代碼中,如何在當前工作表中引用多個區(qū)域? 回答:

      (1)可以使用Union方法,例如:

      Union(Range(“C3:D4”), Range(“E5:F6”)),表示單元格區(qū)域C3:D4和E5:F6所組成的區(qū)域。Union方法可以將多個非連續(xù)區(qū)域連接起來成為一個區(qū)域,從而可以實現(xiàn)對多個非連續(xù)區(qū)域一起進行操作。

      (2)也可以使用下面的代碼:

      Range(“C3:D4, E5:F6”)或[C3:D4, E5:F6] 注意:Range(“C3:D4”, “F5:G6”),表示單元格區(qū)域C3:G6,即將兩個區(qū)域以第一個區(qū)域左上角單元格為起點,以第二個區(qū)域右下角單元格為終點連接成一個新區(qū)域。

      同時,在引用區(qū)域后使用Rows屬性和Columns屬性時,注意下面代碼的區(qū)別: ①Range(“C3:D4”, “F8:G10”).Rows.Count,返回的值為8; ②Range(“C3:D4,F8:G10”).Rows.Count,返回的值為2,即只計算第一個單元格區(qū)域。

      ------------------問題八:在VBA代碼中,如何引用當前工作表中活動單元格或指定單元格所在的區(qū)域(當前區(qū)域)?

      回答:可以使用CurrentRegion屬性,例如:

      (1)ActiveCell.CurrentRegion,表示活動單元格所在的當前區(qū)域。(2)Range(“D5”).CurrentRegion,表示單元格D5所在的當前區(qū)域。

      當前區(qū)域是指周圍由空行或空列所圍成的區(qū)域。該屬性的詳細使用參見《CurrentRegion屬性示例》一文。

      ------------------問題九:在VBA代碼中,如何引用當前工作表中已使用的區(qū)域? 回答:可以使用UsedRange屬性,例如:

      (1)Activesheet.UsedRange,表示當前工作表中已使用的區(qū)域。

      (2)Worksheets(“sheet1”).UsedRange,表示工作表sheet1中已使用的區(qū)域。

      與CurrentRegion屬性不同的是,該屬性代表工作表中已使用的單元格區(qū)域,包括顯示為空行,但已進行過格式的單元格區(qū)域。該屬性的詳細使用參見《解析UsedRange屬性》一文。

      ------------------問題十:如何在單元格區(qū)域內(nèi)指定特定的單元格? 回答:可以使用Item屬性,例如:

      (1)Range(“A1:B10”).Item(5,3)指定單元格C5,這個單元格處于以區(qū)域中左上角單元格A1(即區(qū)域中第1行第1列的單元格)為起點的第5行第3列。因為Item屬性為默認屬性,因此也可以簡寫為:Range(“A1:B10”)(5,3)。如果將A1:B10區(qū)域命名為”MyRange”,那么Range(“MyRange”)(5,3)也指定單元格C5。(2)Range(“A1:B10”)(12,13)指定單元格M12,即用這種方式引用單元格,該單元格不必一定要包含在區(qū)域內(nèi)。

      同時,也不需要索引數(shù)值是正值,例如: ① Range(“D4:F6”)(0,0)代表單元格C3; ② Range(“D4:F6”)(-1,-2)代表單元格A2。而Range(“D4:F6”)(1,1)代表單元格D4。(3)也可以在單元格區(qū)域中循環(huán),例如:

      Range(“D4:F6”)(2,2)(3,4)代表單元格H7,即該單元格位于作為左上角單元格E5的第3行第4列(因為E5是開始于區(qū)域中左上角單元格D4起的第2行第2列)。

      (4)也能使用一個單個的索引數(shù)值進行引用。計數(shù)方式為從左向右,即在區(qū)域中的第一行開始從左向右計數(shù),第一行結束后,然后從第二行開始從左到右接著計數(shù),依次類推。(注:從區(qū)域中第一行第一個單元格開始計數(shù),當?shù)谝恍薪Y束時,轉入第二行最左邊的單元格,這樣按一行一行從左向右依次計數(shù)。以單元格區(qū)域中第1個單元格開始,按上述規(guī)則依次為第2個單元格、第3個單元格?.等等),例如: Range(“A1:B2”)(1)代表單元格A1; Range(“A1:B2”)(2)代表單元格B1; Range(“A1:B2”)(3)代表單元格A2; Range(“A1:B2”)(4)代表單元格B2。這種方法可在工作表中連續(xù)向下引用單元格(即不一定是在單元格區(qū)域內(nèi),但在遵循相同的規(guī)律),例如:

      Range(“A1:B2”)(5)代表單元格A3;

      Range(“A1:B2”)(14)代表單元格B7,等等。也可以使用單個的負數(shù)索引值。

      這種使用單個索引值的方法對遍歷列是有用的,例如,Range(“D4”)(1)代表單元格D4,Range(“D4”)(2)代表單元格D5,Range(“D4”)(11)代表單元格D14,等等。同理,稍作調(diào)整后也可遍歷行,例如:

      Range(“D4”).Columns(2)代表單元格E4,Range(“D4”).Columns(5)指定單元格H4,等等。(5)當與對象變量配合使用時,Item屬性能提供簡潔并有效的代碼,例如: Set rng = Worksheets(1).[a1] 定義了對象變量后,像單元格方法一樣,Item屬性允許使用兩個索引數(shù)值引用工作表中的任一單元格,例如,rng(3,4)指定單元格D3。(By Chip Pearson)

      ------------------問題十一:在VBA代碼中,如何引用當前工作表中的整行或整列? 回答:見下面的示例代碼:

      (1)Range(“C:C”).Select,表示選擇C列。

      Range(“C:E”).Select,表示選擇C列至E列。(2)Range(“1:1”).Select,表示選擇第一行。

      Range(“1:3”).Select,表示選擇第1行至第3行。(3)Range(“C:C”).EntireColumn,表示C列; Range(“D1”).EntireColumn,表示D列。

      同樣的方式,也可以選擇整行,然后可以使用如AutoFit方法對整列或整行進行調(diào)整。

      ------------------問題十二:在VBA代碼中,如何引用當前工作表中的所有單元格? 回答:可以使用下面的代碼:

      (1)Cells,表示當前工作表中的所有單元格。

      (2)Range(Cells(1, 1), Cells(Cells.Rows.Count, Cells.Columns.Count)),其中Cells.Rows表示工作表所有行,Cells.Columns表示工作表所有列。

      ------------------問題十三:在VBA代碼中,如何引用工作表中的特定單元格區(qū)域?

      回答:在工作表中,您可能使用過“定位條件”對話框。可以通過選擇菜單“編輯——定位”,單擊“定位”對話框中的“定位條件”按鈕顯示該對話框。這個對話框可以允許用戶選擇特定的單元格。例如:

      (1)Worksheets(“sheet1”).Cells.SpecialCells(xlCellTypeAllFormatConditions),表示工作表sheet1中由帶有條件格式的單元格所組成的區(qū)域。(2)ActiveCell.CurrentRegion.SpecialCells(xlCellTypeBlanks),表示當前工作表中活動單元格所在區(qū)域中所有空白單元格所組成的區(qū)域。

      當然,還有很多常量和值的組合,可以讓您實現(xiàn)特定單元格的查找并引用。參見《探討在工作表中找到最后一行》一文。------------------問題十四:在VBA代碼中,如何引用其它工作表或其它工作簿中的單元格區(qū)域?

      回答:要引用其它工作表或其它工作簿中的單元格區(qū)域,只需在單元格對象前加上相應的引用對象即可,例如:

      (1)Worksheets(“Sheet3”).Range(“C3:D5”),表示引用工作表sheet3中的單元格區(qū)域C3:D5。(2)Workbooks(“MyBook.xls”).Worksheets(“sheet1”).Range(“B2”),表示引用MyBook工作簿中工作表Sheet1上的單元格B2。

      ------------------問題十五:還有其它的一些情形嗎? 回答:列舉如下:

      (1)Cells(15),表示單元格O1,即可在Cells屬性中指定單元格數(shù)字來選擇單元格,其計數(shù)順序為自左至右、從上到下,又如Cells(257),表示單元格B1。

      (2)Cells(, 256),表示單元格IV1,但是如果Cells(, 257),則會返回錯誤。

      ------------------結語

      我們用VBA對Excel進行處理,一般是對其工作表中的數(shù)據(jù)進行處理,因此,引用單元格區(qū)域是ExcelVBA編程中最基本的操作之一,只有確定了所處理的單元格區(qū)域,才能使用相應的屬性和方法進行下一步的操作。

      上面列舉了一些引用單元格區(qū)域的情形和方式,可以看出,引用單元格區(qū)域有很多方式,有一些可能不常用,可以根據(jù)工作表的所處的環(huán)境和個人編程習慣進行選擇使用。

      當然,在編寫程序時,也可能會將上面的一些屬性聯(lián)合使用,以達到選取特定操作對象的目的,例如Offset屬性、Resize屬性、CurrentRegion屬性、UsedRange屬性等的組合。

      找到最后一行的一些方法探討 使用End屬性

      在ExcelVBA中,使用End(xlUp)查找最后一行是最常使用且最為簡單的方法,它假設要有一列總包含有數(shù)據(jù)(數(shù)字、文本和公式等),并且在該列中最后輸入數(shù)據(jù)的單元格的下一行不會包含數(shù)據(jù),因此不必擔心會覆蓋掉已有數(shù)據(jù)。但該方法有兩個缺點:(1)僅局限于查找指定列的最后一行。

      (2)如果該列中最后一行被隱藏,那么該隱藏行將被視作最后一行。因此,在最后一行被隱藏時,其數(shù)據(jù)可能會被覆蓋。但該列中間的隱藏行不會影響查找的結果。[示例代碼01] Sub EndxlUp_OneColLastRow()If Range(“A” & Rows.Count).End(xlUp)= Empty Then GoTo Finish '獲取最后一行

      MsgBox “最后一行是第” & Range(“A” & Rows.Count).End(xlUp).Row & “行.” Exit Sub Finish: MsgBox “沒有發(fā)現(xiàn)公式或數(shù)據(jù)!” End Sub [示例代碼02] Sub NextRowInColumnUsedAsSub()'包含所有數(shù)據(jù)和公式,忽略隱藏的最后一行

      Range(“A” & Range(“A” & Rows.Count).End(xlUp).Row + 1).Select End Sub [示例代碼03] Sub NextRowInColumnUsedAsFunction()'包含所有數(shù)據(jù)和公式,忽略隱藏的最后一行

      Range(“A” & LastRowInColumn(“A”)+ 1).Select End Sub '-------Public Function LastRowInColumn(Column As String)As Long LastRowInColumn = Range(Column & Rows.Count).End(xlUp).Row End Function 注意,要輸入新數(shù)據(jù)的列可能與我們所查找最后一行時所使用的列不同,例如,在上例中,我們可以修改為在B列中查找該列的最后一行,而在A列相應行的下一行中輸入新的數(shù)據(jù)。

      ------------------使用Find方法

      Find方法在當前工作有數(shù)據(jù)中進行查找,不需要指定列,也可以確保不會意外地覆蓋掉已有數(shù)據(jù)。其中,參數(shù)LookIn指定所查找的類型,有三個常量可供選擇,即xlValues、xlFormulas和xlComments。

      (1)常量xlFormulas將包含零值的單元格作為有數(shù)據(jù)的單元格。(當設置零值不顯示時,該單元格看起來為空,但該參數(shù)仍將該單元格視為有數(shù)據(jù)的單元格)(2)常量xlValues將包含零值的單元格(如果設置零值不顯示時)作為空白單元格,此時,若該單元格在最后一行,則Find方法會認為該單元格所在的行為空行,因此,該單元格中的內(nèi)容可能會被新數(shù)據(jù)所覆蓋。

      [注:在Excel中,選擇菜單“工具”——“選項”,在打開的“選項”對話框中,選擇“視圖”選項卡,將其中的“零值”前的復選框取消選中,則工作表中的零值都不會顯示] 如果在參數(shù)LookIn中使用常量xlValues的話,還存在一個問題是:如果您將最后一行隱藏,則Find方法會認為倒數(shù)第二行是最后一行,此時您在最后一行的下一行輸入數(shù)據(jù),則會將實際的最后一行的數(shù)據(jù)覆蓋。

      您可以在隱藏最后一行與不隱藏最后一行,或者是最后一行顯示零值與不顯示零值時,運行下面的示例代碼04,看看所得的結果有什么不同。[示例代碼04] Sub Find_LastRowxlValues()On Error GoTo Finish '獲取最后一行

      MsgBox “最后一行是第” & Cells.Find(“*”, _ SearchOrder:=xlByRows, LookIn:=xlValues, _ SearchDirection:=xlPrevious).EntireRow.Row & “行” Exit Sub Finish: MsgBox “沒有發(fā)現(xiàn)數(shù)值!” End Sub 因此,在使用Find方法時,您應該考慮所選參數(shù)設置的常量,以及工作表最后一行是否有可能被隱藏或不顯示零值。如果您忽視這些情況,很可能得不到您想要的結果,或者是覆蓋掉已有數(shù)據(jù)。使用常量xlFormulas可以避免這個問題,如下面的示例代碼05所示。[示例代碼05] Sub Find_LastRowxlFormulas()On Error GoTo Finish '獲取最后一行

      MsgBox “最后一行是第” & Cells.Find(“*”, _ SearchOrder:=xlByRows, LookIn:=xlFormulas, _ SearchDirection:=xlPrevious).EntireRow.Row & “行” Exit Sub Finish: MsgBox “沒發(fā)現(xiàn)數(shù)值或公式!” End Sub 下面再列舉幾個示例代碼。[示例代碼06] Sub NextRowUsedAsSub()'選取最后一行的下一行 Range(“A” & Cells.Find(“*”, LookIn:=xlFormulas, SearchDirection:=xlPrevious).Row + 1).Select End Sub [示例代碼07] Sub NextRowUsedAsFunction()'選取最后一行的下一行(調(diào)用函數(shù))Range(“A” & LastRow + 1).Select End Sub '-------Public Function LastRow()As Long '本代碼包含隱藏行

      '使用常量xlFormulas,因為常量xlValues會忽略隱藏的最后一行 LastRow = Cells.Find(“*”, LookIn:=xlFormulas, SearchDirection:=xlPrevious).Row End Function 注:Find方法中,參數(shù)LookIn的默認值為xlFormulas。

      ------------------使用SpecialCells方法

      SpecialCells方法用于查找指定類型的值,其語法為SpecialCells(Type,Value),有兩種主要的使用方式:

      (1)若參數(shù)Type僅考慮常量,則在查找時會忽略和覆蓋由公式生成的任何數(shù)據(jù),如示例代碼08所示。

      (2)若參數(shù)Type僅考慮由公式生成的數(shù)據(jù),則在查找時會忽略和覆蓋任何常量數(shù)據(jù),如示例代碼09所示。如果參數(shù)Type是xlCellTypeConstants或者是xlCellTypeFormulas,則Value參數(shù)可使用常量決定哪種類型的單元格將被包含在結果中,這些常量值能組合而返回多個類型,其缺省設置是選擇所有的常量或公式,而不管是何類型,可使用下面四個可選的常量: 1)xlTextValues(包含文本);2)xlNumbers(包含數(shù)字);3)xlErrors(包含錯誤值);4)xlLogical(包含邏輯值)自已在工作表輸入一些含有數(shù)值和公式的數(shù)據(jù),隱藏或不隱藏最后一行或公式所在的行,先體驗下面的兩段示例代碼。[示例代碼08] '當最后一行為公式或隱藏了最后行時,會忽略,即認為倒數(shù)第二行為最后一行 Sub NextConstantRowFunction()Range(“A” & LastConstantRow(True, True, True, True)+ 1).Select End Sub '------Public Function LastConstantRow(Optional IncludeText As Boolean, _ Optional IncludeNumbers As Boolean, _ Optional IncludeErrors As Boolean, _ Optional IncludeLogicals As Boolean)As Long Dim Text As Long, Numbers As Long, Errors As Long Dim Logical As Long, AllTypes As Long If IncludeText Then Text = xlTextValues Else Text = 0 If IncludeNumbers Then Numbers = xlNumbers Else Numbers = 0 If IncludeErrors Then Errors = xlErrors Else Errors = 0 If IncludeLogicals Then Logical = xlLogical Else Logical = 0 AllTypes = Text + Numbers + Errors + Logical On Error GoTo Finish LastConstantRow = Split(Cells.SpecialCells(xlCellTypeConstants, AllTypes).Address, “$”)_(UBound(Split(Cells.SpecialCells(xlCellTypeConstants, AllTypes).Address, “$”)))Exit Function Finish: MsgBox “沒有發(fā)現(xiàn)數(shù)據(jù)!” End Function [示例代碼09] '查找含有公式的單元格所在的行,忽略該行以后的常量和隱藏的行 Sub NextFormulaRowFunction()Range(“A” & LastFormulaRow(True, True, True, True)+ 1).Select End Sub '-------Public Function LastFormulaRow(Optional IncludeText As Boolean, _ Optional IncludeNumbers As Boolean, _ Optional IncludeErrors As Boolean, _ Optional IncludeLogicals As Boolean)As Long Dim Text As Long, Numbers As Long, Errors As Long Dim Logical As Long, AllTypes As Long If IncludeText Then Text = xlTextValues Else Text = 0 If IncludeNumbers Then Numbers = xlNumbers Else Numbers = 0 If IncludeErrors Then Errors = xlErrors Else Errors = 0 If IncludeLogicals Then Logical = xlLogical Else Logical = 0 AllTypes = Text + Numbers + Errors + Logical On Error GoTo Finish LastFormulaRow = Split(Cells.SpecialCells(xlCellTypeFormulas, AllTypes).Address, “$”)_(UBound(Split(Cells.SpecialCells(xlCellTypeFormulas, AllTypes).Address, “$”)))Exit Function Finish: MsgBox “沒有發(fā)現(xiàn)數(shù)據(jù)!” End Function 下面的示例代碼10忽略最后一行帶有公式的單元格,即當最后一行的單元格中含有公式時,將倒數(shù)第二行作為最后一行,即只考慮直接輸入到工作表中的數(shù)據(jù)。當最后一行沒有公式但被隱藏時,并不影響該方法的判斷。[示例代碼10] Sub SpecialCells_LastRowxlCellTypeConstants()Dim MyRow As Range On Error GoTo Finish Set MyRow = Intersect([A:A], Cells._ SpecialCells(xlCellTypeConstants).EntireRow).EntireRow '獲取最后一行

      MsgBox “最后一行是第” & Split(MyRow.Address, “$”)_(UBound(Split(MyRow.Address, “$”)))& “行” Set MyRow = Nothing Exit Sub Finish: MsgBox “沒有發(fā)現(xiàn)數(shù)據(jù)!” End Sub 注:因為上述代碼使用了’Split’函數(shù),故只適合于Office2000及以上的版本。該方法也允許我們指定單個數(shù)據(jù)類型,諸如數(shù)字數(shù)據(jù)或文本數(shù)據(jù),如下所示。

      下面,我們查找的最后一行是僅在行中有數(shù)字(而不包含公式)的單元格的最后一行。[示例代碼11] Sub SpecialCells_LastRowxlCellTypeNumberConstants()Dim MyRow As Range On Error GoTo Finish Set MyRow = Intersect([A:A], Cells._ SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow)'獲取最后一行

      MsgBox “最后一行是第” & Split(MyRow.Address, “$”)_(UBound(Split(MyRow.Address, “$”)))& “行” Set MyRow = Nothing Exit Sub Finish: MsgBox “沒有發(fā)現(xiàn)數(shù)據(jù)!” End Sub 下面,我們查找的最后一行是僅在行中有文本(而不包含公式)的單元格的最后一行。[示例代碼12] Sub SpecialCells_LastRowxlCellTypeTextConstants()Dim MyRow As Range On Error GoTo Finish Set MyRow = Intersect([A:A], Cells._ SpecialCells(xlCellTypeConstants, xlTextValues).EntireRow)'獲取最后一行

      MsgBox “最后一行是第” & Split(MyRow.Address, “$”)_(UBound(Split(MyRow.Address, “$”)))& “行” Set MyRow = Nothing Exit Sub Finish: MsgBox “沒有發(fā)現(xiàn)數(shù)據(jù)!” End Sub 下面,我們查找的最后一行是僅在行中有公式的單元格的最后一行。[示例代碼13] Sub SpecialCells_LastRowxlCellTypeFormulas()Dim MyRow As Range On Error GoTo Finish Set MyRow = Intersect([A:A], Cells._ SpecialCells(xlCellTypeFormulas).EntireRow).EntireRow '獲取最后一行

      MsgBox “最后一行是第” & Split(MyRow.Address, “$”)_(UBound(Split(MyRow.Address, “$”)))& “行” Set MyRow = Nothing Exit Sub Finish: MsgBox “沒有發(fā)現(xiàn)數(shù)據(jù)!” End Sub 同上面所講述的一樣,我們也能使用SpecailCells方法去找到其它特定類型的單元格所在的最后一行,下面是這些常量的一個完整的列表:

      XlCellTypeAllFormatConditions(任何格式的單元格)XlCellTypeAllValidation(帶有數(shù)據(jù)有效性的單元格)XlCellTypeBlanks(所使用區(qū)域中的空白單元格)XlCellTypeComments(包含有批注的單元格)XlCellTypeConstants(包含有常量的單元格)XlCellTypeFormulas(包含有公式的單元格)XlCellTypeLastCell(已使用區(qū)域中的最后一個單元格(看下面))XlCellTypeSameFormatConditions(有相同格式的單元格)XlCellTypeSameValidation(有相同數(shù)據(jù)有效性條件的單元格)XlCellTypeVisible(工作表中所有可見的單元格)

      第五篇:在VBA代碼中引用Excel工作表中單元格區(qū)域的方式小結

      在VBA代碼中引用Excel工作表中單元格區(qū)域的方式小結

      -----------------Public Function LastUsedRow()As Long LastUsedRow = Cells.SpecialCells(xlCellTypeLastCell).Row End Function 使用這里介紹的兩種技術時,您一定要清楚工作表當前的狀態(tài),以找到正確的最后一行。

      ------------------使用CurrentRegion屬性

      CurrentRegion屬性返回代表單元格所在的當前區(qū)域,即四周有空行的獨立區(qū)域,因此,可使用此屬性查找當前區(qū)域的最后一行。但是使用其查找最后一行的一個缺點是,必須首先選取當前區(qū)域,然后進行查找。

      ------------------小結

      正如開始所講述的一樣,使用各種方法來查找最后一行都有其優(yōu)缺點,并且都能找到您想要的最后一行,關鍵是您要了解各種方法的特性,以及工作表的狀態(tài),以便于選擇所使用的方法來找到您需要的最后一行。

      上述內(nèi)容可能有不準確的地方,也可能有遺漏之處,您也可以在調(diào)試中體會和改進。

      使用 Visual Basic 的普通任務是指定單元格或單元格區(qū)域,然后對該單元格或單元格區(qū)域進行一些操作,如輸入公式或更改格式。

      通常用一條語句就能完成操作,該語句可標識單元格,還可更改某個屬性或應用某個方法。

      在 Visual Basic 中,Range 對象既可表示單個單元格,也可表示單元格區(qū)域。下列主題說明了標識和處理 Range 對象最常用的方法。

      用 A1 樣式記號引用單元格和單元格區(qū)域

      可使用 Range 屬性來引用 A1 引用樣式中的單元格或單元格區(qū)域。下述子程序?qū)卧駞^(qū)域 A1:D5 的字體設置為加粗。

      Sub FormatRange()Workbooks(“Book1”).Sheets(“Sheet1”).Range(“A1:D5”)_.Font.Bold = True End Sub

      下表演示了使用 Range 屬性的一些 A1 樣式引用。

      引用

      含義

      Range(“A1”)單元格 A1

      Range(“A1:B5”)從單元格 A1 到單元格 B5 的區(qū)域

      Range(“C5:D9,G9:H16”)多塊選定區(qū)域

      Range(“A:A”)A 列

      Range(“1:1”)第一行

      Range(“A:C”)從 A 列到 C 列的區(qū)域

      Range(“1:5”)從第一行到第五行的區(qū)域

      Range(“1:1,3:3,8:8”)第 1、3 和 8 行

      Range(“A:A,C:C,F:F”)A、C 和 F 列

      用編號引用單元格

      通過使用行列編號,可用 Cells 屬性來引用單個單元格。該屬性返回代表單個單元格的 Range 對象。下例中,Cells(6,1)返回 Sheet1 上的單元格 A6,然后將 Value 屬性設置為 10。Sub EnterValue()Worksheets(“Sheet1”).Cells(6, 1).Value = 10 End Sub 因為可用變量替代編號,所以 Cells 屬性非常適合于在單元格區(qū)域中循環(huán),如下例所示。

      Sub CycleThrough()Dim Counter As Integer For Counter = 1 To 20 Worksheets(“Sheet1”).Cells(Counter, 3).Value = Counter Next Counter End Sub 注意 如果要同時更改某一單元格區(qū)域中所有單元格的屬性或?qū)ζ鋺梅椒?,可使?Range 屬性。有關詳細信息,請參閱用 A1 樣式記號引用單元格。

      引用行和列

      可用 Rows 屬性或 Columns 屬性來處理整行或整列。這兩個屬性返回代表單元格區(qū)域的 Range 對象。下例中,用 Rows(1)返回 Sheet1 上的第一行,然后將單元格區(qū)域的 Font 對象的 Bold 屬性設置為 True。

      Sub RowBold()Worksheets(“Sheet1”).Rows(1).Font.Bold = True End Sub 下表舉例說明了使用 Rows 和 Columns 屬性的一些行和列的引用。

      引用

      含義

      Rows(1)第一行

      Rows 工作表上所有的行

      Columns(1)第一列

      Columns(“A”)第一列

      Columns 工作表上所有的列

      若要同時處理若干行或列,請創(chuàng)建一個對象變量并使用 Union 方法,將對 Rows 屬性或 Columns 屬性的多個調(diào)用組合起來。下例將活動工作簿中第一張工作表上的第一行、第三行和第五行的字體設置為加粗。Sub SeveralRows()Worksheets(“Sheet1”).Activate Dim myUnion As Range Set myUnion = Union(Rows(1), Rows(3), Rows(5))myUnion.Font.Bold = True End Sub 用快捷記號引用單元格

      可用方括號將 A1 引用樣式或命名區(qū)域括起來,作為 Range 屬性的快捷方式。這樣就不必鍵入單詞“Range”或使用引號,如下例所示。

      Sub ClearRange()Worksheets(“Sheet1”).[A1:B5].ClearContents End Sub Sub SetValue()[MyRange].Value = 30 End Sub 引用命名區(qū)域

      用名稱比用 A1 樣式記號更容易標識單元格區(qū)域。若要命名選定的單元格區(qū)域,請單擊編輯欄左端的名稱框,鍵入名稱,再按 Enter。

      引用命名區(qū)域

      下例引用了名為“MyBook.xls”的工作簿中的名為“MyRange”的單元格區(qū)域。

      Sub FormatRange()Range(“MyBook.xls!MyRange”).Font.Italic = True End Sub 下例引用名為“Report.xls”的工作簿中的特定工作表單元格區(qū)域“Sheet1!Sales”。

      Sub FormatSales()Range(“[Report.xls]Sheet1!Sales”).BorderAround Weight:=xlthin End Sub 若要選定命名區(qū)域,請用 GoTo 方法,該方法將激活工作簿和工作表,然后選定該區(qū)域。

      Sub ClearRange()Application.Goto Reference:=“MyBook.xls!MyRange” Selection.ClearContents End Sub 下例顯示對于活動工作簿將如何編寫相同的過程。

      Sub ClearRange()Application.Goto Reference:=“MyRange” Selection.ClearContents End Sub 在命名區(qū)域中的單元格上循環(huán)

      下例用 For Each...Next 循環(huán)語句在命名區(qū)域中的每一個單元格上循環(huán)。如果該區(qū)域中的任一單元格的值超過 limit 的值,就將該單元格的顏色更改為黃色。

      Sub ApplyColor()Const Limit As Integer = 25 For Each c In Range(“MyRange”)If c.Value > Limit Then c.Interior.ColorIndex = 27 End If Next c End Sub 相對于其他單元格來引用單元格

      處理相對于另一個單元格的某一單元格的常用方法是使用 Offset 屬性。下例中,將位于活動工作表上活動單元格下一行和右邊三列的單元格的內(nèi)容設置為雙下劃線格式。

      Sub Underline()ActiveCell.Offset(1, 3).Font.Underline = xlDouble End Sub 注意 可錄制使用 Offset 屬性(而不是絕對引用)的宏。在“工具”菜單上,指向“宏”,再單擊“錄制新宏”,然后單擊“確定”,再單擊錄制宏工具欄上的“相對引用”按鈕。

      若要在單元格區(qū)域中循環(huán),請在循環(huán)中將變量與 Cells 屬性一起使用。下例以 5 為步長,用 5 到 100 之間的值填充第三列的前 20 個單元格。變量 counter 用作 Cells 屬性的行號。

      Sub CycleThrough()Dim counter As Integer For counter = 1 To 20 Worksheets(“Sheet1”).Cells(counter, 3).Value = counter * 5 Next counter End Sub 用 Range 對象引用單元格

      如果將對象變量設置為 Range 對象,即可用變量名方便地操作單元格區(qū)域。

      下述過程創(chuàng)建了對象變量 myRange,然后將活動工作簿中 Sheet1 上的單元格區(qū)域 A1:D5 賦予該變量。隨后的語句用該變量代替該區(qū)域?qū)ο?,以修改該區(qū)域的屬性。

      Sub Random()Dim myRange As Range Set myRange = Worksheets(“Sheet1”).Range(“A1:D5”)myRange.Formula = “=RAND()” myRange.Font.Bold = True End Sub 引用工作表上的所有單元格

      如果對工作表應用 Cells 屬性時不指定編號,該屬性將返回代表工作表上所有單元格的 Range 對象。下述 Sub 過程清除活動工作簿中 Sheet1 上的所有單元格的內(nèi)容。

      Sub ClearSheet()Worksheets(“Sheet1”).Cells.ClearContents End Sub 引用多個單元格區(qū)域

      使用適當?shù)姆椒梢院苋菀椎赝瑫r引用多個單元格區(qū)域。可用 Range 和 Union 方法引用任意組合的單元格區(qū)域;用 Areas 屬性可引用工作表上選定的一組單元格區(qū)域。

      使用 Range 屬性

      通過在兩個或多個引用之間放置逗號,可使用 Range 屬性來引用多個單元格區(qū)域。下例清除了 Sheet1 上三個單元格區(qū)域的內(nèi)容。

      Sub ClearRanges()Worksheets(“Sheet1”).Range(“C5:D9,G9:H16,B14:D18”)._ ClearContents End Sub 命名區(qū)域使得用 Range 屬性處理多個單元格區(qū)域更為容易。下例可在三個命名區(qū)域處于同一工作表時運行。

      Sub ClearNamed()Range(“MyRange, YourRange, HisRange”).ClearContents End Sub 使用 Union 方法

      用 Union 方法可將多個單元格區(qū)域組合到一個 Range 對象中。下例創(chuàng)建了名為 myMultipleRange 的 Range 對象,并將其定義為單元格區(qū)域 A1:B2 和 C3:D4 的組合,然后將該組合區(qū)域的字體設置為加粗。

      Sub MultipleRange()Dim r1, r2, myMultipleRange As Range Set r1 = Sheets(“Sheet1”).Range(“A1:B2”)Set r2 = Sheets(“Sheet1”).Range(“C3:D4”)Set myMultipleRange = Union(r1, r2)myMultipleRange.Font.Bold = True End Sub 使用 Areas 屬性

      可用 Areas 屬性引用選定的單元格區(qū)域或多塊選定區(qū)域中的區(qū)域集合。下述過程計算選定區(qū)域中的塊數(shù)目,如果有多個塊,就顯示一則警告消息。Sub FindMultiple()If Selection.Areas.Count > 1 Then MsgBox “Cannot do this to a multiple selection.” End If End Sub 在VBA代碼中引用Excel工作表中單元格區(qū)域的方式小結 2007年07月12日 星期四 上午 09:37 在VBA代碼中引用Excel工作表中單元格區(qū)域的方式小結

      分類:ExcelVBA>>ExcelVBA對象模型編程>>常用對象>>Range對象

      在 使用ExcelVBA進行編程時,我們通常需要頻繁地引用單元格區(qū)域,然后再使用相應的屬性和方法對區(qū)域進行操作。所謂單元格區(qū)域,指的是單個的單元格、或者是由多個單元格組成的區(qū)域、或者是整行、整列等。下面,我們設定一些情形,以問答的形式對引用單元格區(qū)域的方式進行歸納。

      問題一:在VBA代碼中,如何引用當前工作表中的單個單元格(例如引用單元格C3)?

      回答:可以使用下面列舉的任一方式對當前工作表中的單元格(C3)進行引用。(1)Range(“C3”)(2)[C3](3)Cells(3, 3)(4)Cells(3, “C”)(5)Range(“C4”).Offset(-1)Range(“D3”).Offset(,-1)Range(“A1”).Offset(2, 2)(6)若C3為當前單元格,則可使用:ActiveCell(7)若將C3單元格命名為“Range1”,則可使用:Range(“Range1”)或[Range1](8)Cells(4, 3).Offset(-1)(9)Range(“A1”).Range(“C3”)

      問題二:在VBA代碼中,我要引用當前工作表中的B2:D6單元格區(qū)域,有哪些方式?

      回答:可以使用下面列舉的任一方式對當前工作表中單元格區(qū)域B2:D6進行引用。

      (1)Range(“B2:D6”)(2)Range(“B2”, “D6”)(3)[B2:D6](4)Range(Range(“B2”), Range(“D6”))(5)Range(Cells(2, 2), Cells(6, 4))(6)若將B2:D6區(qū)域命名為“MyRange”,則又可以使用下面的語句引用該區(qū)域: ① Range(“MyRange”)② [MyRange]

      (7)Range(“B2”).Resize(5, 3)(8)Range(“A1:C5”).Offset(1, 1)(9)若單元格B2為當前單元格,則可使用語句:Range(ActiveCell, ActiveCell.Offset(4, 2))(10)若單元格D6為當前單元格,則可使用語句:Range(“B2”, ActiveCell)

      問題三:在VBA代碼中,如何使用變量實現(xiàn)對當前工作表中不確定單元格區(qū)域的引用?

      回答:有時,我們需要在代碼中依次獲取工作表中特定區(qū)域內(nèi)的單元格,這通??梢圆扇∠旅娴膸追N方式:(1)Range(“A” & i)

      (2)Range(“A” & i & “:C” & i)(3)Cells(i,1)(4)Cells(i,j)其中,i、j為變量,在循環(huán)語句中指定i和j的范圍后,依次獲取相應單元格。

      問題四:在VBA代碼中,如何擴展引用當前工作表中的單元格區(qū)域? 回答:可以使用Resize屬性,例如:

      (1)ActiveCell.Resize(4, 4),表示自當前單元格開始創(chuàng)建一個4行4列的區(qū)域。

      (2)Range(“B2”).Resize(2, 2),表示創(chuàng)建B2:C3單元格區(qū)域。(3)Range(“B2”).Resize(2),表示創(chuàng)建B2:B3單元格區(qū)域。(4)Range(“B2”).Resize(, 2),表示創(chuàng)建B2:C2單元格區(qū)域。如果是在一個單元格區(qū)域(如B3:E6),或一個命名區(qū)域中(如將單元格區(qū)域B3:E6命名為“MyRange”)使用Resize屬性,則只是相對于單元格區(qū)域左上角單元格擴展區(qū)域,例如:

      代碼Range(“C3:E6”).Resize(, 2),表示單元格區(qū)域C3:D6,并且擴展的單元格區(qū)域可不在原單元格區(qū)域內(nèi)。

      因此,可以知道Resize屬性是相對于當前活動單元格或某單元格區(qū)域中左上角單元格按指定的行數(shù)或列數(shù)擴展單元格區(qū)域。

      問題五:在VBA代碼中,如何在當前工作表中基于當前單元格區(qū)域或指定單元格區(qū)域處理其它單元格區(qū)域?

      回答:可以使用Offset屬性,例如:

      (1)Range(“A1”).Offset(2, 2),表示單元格C3。

      (2)ActiveCell.Offset(, 1),表示當前單元格下一列的單元格。(3)ActiveCell.Offset(1),表示當前單元格下一行的單元格。

      (4)Range(“C3:D5”).Offset(, 1),表示單元格區(qū)域D3:E5,即將整個區(qū)域偏移一列。

      從上面的代碼示例可知,Offset屬性從所指定的單元格開始按指定的行數(shù)和列數(shù)偏移,從而到達目的單元格,但偏移的行數(shù)和列數(shù)不包括指定單元格本身。

      問題六:在VBA代碼中,如何在當前工作表中引用交叉區(qū)域? 回答:可以使用Intersect方法,例如:

      Intersect(Range(“C3:E6”), Range(“D5:F8”)),表示單元格區(qū)域D5:E6,即單元格區(qū)域C3:E6與D5:F8相重迭的區(qū)域。

      問題七:在VBA代碼中,如何在當前工作表中引用多個區(qū)域? 回答:

      (1)可以使用Union方法,例如:

      Union(Range(“C3:D4”), Range(“E5:F6”)),表示單元格區(qū)域C3:D4和E5:F6所組成的區(qū)域。

      Union方法可以將多個非連續(xù)區(qū)域連接起來成為一個區(qū)域,從而可以實現(xiàn)對多個非連續(xù)區(qū)域一起進行操作。(2)也可以使用下面的代碼:

      Range(“C3:D4, E5:F6”)或[C3:D4, E5:F6] 注意:Range(“C3:D4”, “F5:G6”),表示單元格區(qū)域C3:G6,即將兩個區(qū)域以第一個區(qū)域左上角單元格為起點,以第二個區(qū)域右下角單元格為終點連接成一個新區(qū)域。

      同時,在引用區(qū)域后使用Rows屬性和Columns屬性時,注意下面代碼的區(qū)別: ①Range(“C3:D4”, “F8:G10”).Rows.Count,返回的值為8;

      ②Range(“C3:D4,F8:G10”).Rows.Count,返回的值為2,即只計算第一個單元格區(qū)域。

      問題八:在VBA代碼中,如何引用當前工作表中活動單元格或指定單元格所在的區(qū)域(當前區(qū)域)?

      回答:可以使用CurrentRegion屬性,例如:

      (1)ActiveCell.CurrentRegion,表示活動單元格所在的當前區(qū)域。(2)Range(“D5”).CurrentRegion,表示單元格D5所在的當前區(qū)域。當前區(qū)域是指周圍由空行或空列所圍成的區(qū)域。該屬性的詳細使用參見《CurrentRegion屬性示例》一文。

      問題九:在VBA代碼中,如何引用當前工作表中已使用的區(qū)域? 回答:可以使用UsedRange屬性,例如:

      (1)Activesheet.UsedRange,表示當前工作表中已使用的區(qū)域。

      (2)Worksheets(“sheet1”).UsedRange,表示工作表sheet1中已使用的區(qū)域。與CurrentRegion屬性不同的是,該屬性代表工作表中已使用的單元格區(qū)域,包括顯示為空行,但已進行過格式的單元格區(qū)域。該屬性的詳細使用參見《解析UsedRange屬性》一文。

      問題十:如何在單元格區(qū)域內(nèi)指定特定的單元格? 回答:可以使用Item屬性,例如:

      (1)Range(“A1:B10”).Item(5,3)指定單元格C5,這個單元格處于以區(qū)域中左上角單元格A1(即區(qū)域中第1行第1列的單元格)為起點的第5行第3列。因為Item屬性為默認屬性,因此也可以簡寫為:Range(“A1:B10”)(5,3)。

      如果將A1:B10區(qū)域命名為”MyRange”,那么Range(“MyRange”)(5,3)也指定單元格C5。(2)Range(“A1:B10”)(12,13)指定單元格M12,即用這種方式引用單元格,該單元格不必一定要包含在區(qū)域內(nèi)。

      同時,也不需要索引數(shù)值是正值,例如: ① Range(“D4:F6”)(0,0)代表單元格C3; ② Range(“D4:F6”)(-1,-2)代表單元格A2。而Range(“D4:F6”)(1,1)代表單元格D4。(3)也可以在單元格區(qū)域中循環(huán),例如:

      Range(“D4:F6”)(2,2)(3,4)代表單元格H7,即該單元格位于作為左上角單元格E5的第3行第4列(因為E5是開始于區(qū)域中左上角單元格D4起的第2行第2列)。(4)也能使用一個單個的索引數(shù)值進行引用。計數(shù)方式為從左向右,即在區(qū)域中的第一行開始從左向右計數(shù),第一行結束后,然后從第二行開始從左到右接著計數(shù),依次 類推。(注:從區(qū)域中第一行第一個單元格開始計數(shù),當?shù)谝恍薪Y束時,轉入第二行最左邊的單元格,這樣按一行一行從左向右依次計數(shù)。以單元格區(qū)域中第1個單 元格開始,按上述規(guī)則依次為第2個單元格、第3個單元格?.等等),例如:

      Range(“A1:B2”)(1)代表單元格A1; Range(“A1:B2”)(2)代表單元格B1; Range(“A1:B2”)(3)代表單元格A2; Range(“A1:B2”)(4)代表單元格B2。

      這種方法可在工作表中連續(xù)向下引用單元格(即不一定是在單元格區(qū)域內(nèi),但在遵循相同的規(guī)律),例如:

      Range(“A1:B2”)(5)代表單元格A3;

      Range(“A1:B2”)(14)代表單元格B7,等等。也可以使用單個的負數(shù)索引值。

      這種使用單個索引值的方法對遍歷列是有用的,例如,Range(“D4”)(1)代表單元格D4,Range(“D4”)(2)代表單元格D5,Range(“D4”)(11)代表單元格D14,等等。

      同理,稍作調(diào)整后也可遍歷行,例如:

      Range(“D4”).Columns(2)代表單元格E4,Range(“D4”).Columns(5)指定單元格H4,等等。

      (5)當與對象變量配合使用時,Item屬性能提供簡潔并有效的代碼,例如: Set rng = Worksheets(1).[a1] 定義了對象變量后,像單元格方法一樣,Item屬性允許使用兩個索引數(shù)值引用工作表中的任一單元格,例如,rng(3,4)指定單元格D3。(By Chip Pearson)

      問題十一:在VBA代碼中,如何引用當前工作表中的整行或整列? 回答:見下面的示例代碼:

      (1)Range(“C:C”).Select,表示選擇C列。

      Range(“C:E”).Select,表示選擇C列至E列。(2)Range(“1:1”).Select,表示選擇第一行。

      Range(“1:3”).Select,表示選擇第1行至第3行。(3)Range(“C:C”).EntireColumn,表示C列; Range(“D1”).EntireColumn,表示D列。同樣的方式,也可以選擇整行,然后可以使用如AutoFit方法對整列或整行進行調(diào)整。

      問題十二:在VBA代碼中,如何引用當前工作表中的所有單元格? 回答:可以使用下面的代碼:

      (1)Cells,表示當前工作表中的所有單元格。

      (2)Range(Cells(1, 1), Cells(Cells.Rows.Count, Cells.Columns.Count)),其中Cells.Rows表示工作表所有行,Cells.Columns表示工作表所有列。

      問題十三:在VBA代碼中,如何引用工作表中的特定單元格區(qū)域?

      回答:在工作表中,您可能使用過“定位條件”對話框。可以通過選擇菜單“編輯——定位”,單擊“定位”對話框中的“定位條件”按鈕顯示該對話框。這個對話框可以允許用戶選擇特定的單元格。例如:(1)Worksheets(“sheet1”).Cells.SpecialCells(xlCellTypeAllFormatConditions),表示工作表sheet1中由帶有條件格式的單元格所組成的區(qū)域。

      (2)ActiveCell.CurrentRegion.SpecialCells(xlCellTypeBlanks),表示當前工作表中活動單元格所在區(qū)域中所有空白單元格所組成的區(qū)域。

      當然,還有很多常量和值的組合,可以讓您實現(xiàn)特定單元格的查找并引用。參見《探討在工作表中找到最后一行》一文。

      問題十四:在VBA代碼中,如何引用其它工作表或其它工作簿中的單元格區(qū)域? 回答:要引用其它工作表或其它工作簿中的單元格區(qū)域,只需在單元格對象前加上相應的引用對象即可,例如:(1)Worksheets(“Sheet3”).Range(“C3:D5”),表示引用工作表sheet3中的單元格區(qū)域C3:D5。(2)Workbooks(“MyBook.xls”).Worksheets(“sheet1”).Range(“B2”),表示引用MyBook工作簿中工作表Sheet1上的單元格B2。

      問題十五:還有其它的一些情形嗎? 回答:列舉如下:

      (1)Cells(15),表示單元格O1,即可在Cells屬性中指定單元格數(shù)字來選擇單元格,其計數(shù)順序為自左至右、從上到下,又如Cells(257),表示單元格B1。(2)Cells(, 256),表示單元格IV1,但是如果Cells(, 257),則會返回錯誤。

      結語

      我們用VBA對Excel進行處理,一般是對其工作表中的數(shù)據(jù)進行處理,因此,引用單元格區(qū)域是ExcelVBA編程中最基本的操作之一,只有確定了所處理的單元格區(qū)域,才能使用相應的屬性和方法進行下一步的操作。上面列舉了一些引用單元格區(qū)域的情形和方式,可以看出,引用單元格區(qū)域有很多方式,有一些可能不常用,可以根據(jù)工作表的所處的環(huán)境和個人編程習慣進行選擇使用。

      當然,在編寫程序時,也可能會將上面的一些屬性聯(lián)合使用,以達到選取特定操作對象的目的,例如Offset屬性、Resize屬性、CurrentRegion屬性、UsedRange屬性等的組合。MsgBox 函數(shù)

      作用:在對話框中顯示消息,等待用戶單擊按鈕,并返回一個 Integer 告訴用戶單擊哪一個按鈕。語法:

      MsgBox(prompt[, buttons] [, title] [, helpfile, context])參數(shù)說明:

      MsgBox 函數(shù)的語法具有以下幾個命名參數(shù):

      Prompt-------必需的。字符串表達式,作為顯示在對話框中的消息。prompt 的最大長度大約為 1024 個字符,由所用字符的寬度決定。如果 prompt 的內(nèi)容超過一行,則可以在每一行之間用回車符(Chr(13))、換行符(Chr(10))或是回車與換行符的組合(Chr(13)& Chr(10))將各行分隔開來。

      Buttons-------可選的。數(shù)值表達式是值的總和,指定顯示按鈕的數(shù)目及形式,使用的圖標樣式,缺省按鈕是什么以及消息框的強制回應等。如果省略,則 buttons 的缺省值為 0。Title-------可選的。在對話框標題欄中顯示的字符串表達式。如果省略 title,則將應用程序名放在標題欄中。

      Helpfile--------可選的。字符串表達式,識別用來向?qū)υ捒蛱峁┥舷挛南嚓P幫助的幫助文件。如果提供了 helpfile,則也必須提供 context。

      Context-------可選的。數(shù)值表達式,由幫助文件的作者指定給適當?shù)膸椭黝}的幫助上下文編號。如果提供了 context,則也必須提供 helpfile。

      用于MsgBox函數(shù)中Button參數(shù)的常量 常量 值 說明 vbOKOnly 0 只顯示“確定”按鈕

      VbOKCancel 1 顯示“確定”和“取消”按鈕

      VbAbortRetryIgnore 2 顯示“終止”、“重試”和“忽略” 按鈕 VbYesNoCancel 3 顯示“是”、“否”和“取消”按鈕 VbYesNo 4 顯示“是”和“否”按鈕 VbRetryCancel 5 顯示“重試”和“取消”按鈕 VbCritical 16 顯示“關鍵信息”圖標 VbQuestion 32 顯示“警告詢問”圖標 VbExclamation 48 顯示“警告消息”圖標 VbInformation 64 顯示“通知消息”圖標

      vbDefaultButton1 0 第一個按鈕是缺省值(缺省設置)vbDefaultButton2 256第二個按鈕是缺省值 vbDefaultButton3 512第三個按鈕是缺省值 vbDefaultButton4 768第四個按鈕是缺省值

      vbApplicationModal 0應用程序強制返回;應用程序一直被掛起,直到用戶對消息框 作出響應才繼續(xù)工作

      vbSystemModal 4096系統(tǒng)強制返回;全部應用程序都被掛起,直到用戶對消息框作 出響應才繼續(xù)工作

      vbMsgBoxHelpButton 16384將Help按鈕添加到消息框 VbMsgBoxSetForeground 65536指定消息框窗口作為前景窗口 vbMsgBoxRight 524288文本為右對齊

      vbMsgBoxRtlReading 1048576指定文本應為在希伯來和阿拉伯語系統(tǒng)中的從右到左顯示 說明:

      (1)第一組值(0–5)描述了消息框中顯示的按鈕的類型與數(shù)目;第二組值(16,32,48,64)描述了圖標的樣式;第三組值(0,256,512,768)說明哪一個按鈕是缺省值;而第四組值(0,4096)則決定消息框的強制返回性。將這些數(shù)字相加以生成Buttons參數(shù)值的時候,只能由每組值取用一個數(shù)字。(2)這些常數(shù)都是 Visual Basic for Applications(VBA)指定的。結果,可以在程序代碼中到處使用這些常數(shù)名稱,而不必使用實際數(shù)值。實際數(shù)值與常數(shù)名稱是等價的。返回值

      用于MsgBox函數(shù)返回值的常量 常數(shù) 值 說明 vbOK 1 確定 vbCancel 2 取消 vbAbort 3 終止 vbRetry 4 重試 vbIgnore 5 忽略 vbYes 6 是 vbNo 7 否

      (1)如果同時提供了Helpfile與Context參數(shù),可以按F1鍵來查看與Context相應的幫助主題,Excel通常會在輸入框中自動添加一個幫助(Help)按鈕。

      (2)若在消息框中顯示“取消”按鈕,則按下ESC鍵與單擊“取消”按鈕效果相同。若消息框中有“幫助”按鈕,則提供相關的幫助信息。

      (3)如果要輸入多個參數(shù)并省略中間的某些參數(shù),則必須在相應位置加入逗號分界符。示例

      (1)(1)使用 MsgBox 函數(shù),在具有“是”及“否”按鈕的對話框中顯示一條嚴重錯誤信息。示例中的缺省按鈕為“否”,MsgBox函數(shù)的返回值視用戶按哪一個鈕而定。并假設DEMO.HLP為一幫助文件,其中有一個幫助主題代碼為1000。

      Dim Msg,Style,Title,Help,Ctxt,Response,MyString Msg=“Do you want to continue ?” ’定義消息文本

      Style = vbYesNo + vbCritical + vbDefaultButton2 ' 定義按鈕 Title = “MsgBox Demonstration” ' 定義標題文本 Help = “DEMO.HLP” ' 定義幫助文件 Ctxt = 1000 ' 定義幫助主題

      Response = MsgBox(Msg, Style, Title, Help, Ctxt)If Response = vbYes Then ' 用戶按下“是” MyString = “Yes” ' 完成某操作 Else ' 用戶按下“否”

      MyString = “No” ' 完成某操作 End If(2)只顯示某消息 MsgBox “Hello!”

      (3)將消息框返回的結果賦值給變量 Ans=MsgBox(“Continue?”,vbYesNo)

      If MsgBox(“Continue?”,vbYesNo)<>vbYes Then Exit Sub(4)使用常量的組合,賦值組Config變量,并設置第二個按鈕為缺省按鈕 Config=vbYesNo+vbQuestion+vbDefaultButton2(5)若要在消息中強制換行,可在文本中使用vbCrLf(或vbNewLine)常量,用&加空格與字符隔開。如

      MsgBox “This is the first line.” & vbNewLine & “Second line.”

      (6)可以在消息框中使用vbTab常量插入一個制表符。下面的過程使用一個消息框來顯示5×5單元格區(qū)域中的所有值,用vbTab常量分隔列并使用vbCrLf常量插入一個新行。注意在MsgBox函數(shù)最多只顯示1024個字符,因此限制了可顯示的單元格數(shù)。Option Explicit Sub ShowRangeValue()Dim Msg As String Dim r As Integer, c As Integer Msg = “" For r = 1 To 5 For c = 1 To 5 Msg = Msg & Cells(r, c)& vbTab Next c Msg = Msg & vbCrLf Next r MsgBox Msg End Sub(7)在消息框語句中運用工作表函數(shù)以及設置顯示的數(shù)置格式,如下面語句所示:

      MsgBox ” selection has “ & m & ” cells.“ & Chr(13)& ” the sum is :“ & Application.WorksheetFunction.Sum(Selection)& Chr(13)& ”the average is :“ & Format(Application.WorksheetFunction.Average(Selection), ”#,##0.00“), vbInformation, ”selection count & sum & average" & Chr(13)

      下載第1題不能輸入到Excel工作表的單元格中word格式文檔
      下載第1題不能輸入到Excel工作表的單元格中.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發(fā)現(xiàn)有涉嫌版權的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權內(nèi)容。

      相關范文推薦