文章編號: 108518 - 上次校閱: 2006年10月10日 - 版次: 2.2

Range.EntireRow 可能會傳回不正確的結果

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

徵狀

在 Microsoft Excel 在本篇文章開頭所列的版本,Range.EntireRow 方法可能會傳回不正確的結果,如果範圍是不相鄰選取範圍。例如,如果目前的範圍是不相鄰選取範圍 $ A $ 1: $ A $ 3、 $ C $ 11: $ C $ 13,Range.EntireRow 方法會傳回 $ 1: $ 13、 不 $ 1: $ 3、 $ 11: $ 13 如會預期。當您使用 Range.EntireColumn 方法不相鄰的選定範圍時,傳回整個資料行時,這也會發生。

其他可行方案

在選取範圍中傳回正確的資料列或資料行,不相鄰選取範圍時,您必須分隔為單一片段不相鄰選取範圍的定義為區域所在的區域至選取範圍。這個處理程序以下列 Visual Basic 程式碼範例所示。

Visual Basic 程式碼範例

Microsoft 僅,為了說明提供程式設計範例,不提供任何明示或默示的保證。這包括,但不限於適售性或適合某特定用途之默示擔保責任。本文假設您已熟悉使用我們所示範的程式設計語言以及建立和偵錯程序所使用的工具。Microsoft 技術支援工程師可以協助解釋特定程序的功能,但它們不會修改這些範例以提供附加功能或建構程序,以符合您特定需求。注意: 若要轉換這個範例能夠運作的資料行,使用 「 欄 」 列 」 的位置。

若要用以 SelectRows Sub 程序選取 Sheet1 上儲存格的任何組合。(本範例假設目前所選的項目,$ A $ 1: $ A $ 3、 $ C $ 11: $ C $ 13 Sheet1)然後,按一下 [工具] 功能表上的 [巨集、 從巨集名稱] 清單中選取名稱 SelectRows,按一下 [執行]。
     Option Explicit

   Sub SelectRows()

      ' Dimension some variables.
      Dim Counter As Integer, X As Variant, Y As Variant

      Sheets("Sheet1").Activate          ' Ensure the worksheet is active.

      ' Sets range X equal to the current selection.
      Set X = Selection
      ' Initializes range Y equal to the first Area in X.
      Set Y = X.Areas(1)

      ' Iterate through the loop once for each Area (nonadjacent piece)
      ' of the range X.
      For Counter = 1 To X.Areas.Count
         ' Set Y equal to the union of its previous range and the range of
         ' the rows which encompass the current Area.
         Set Y = Application.Union(Y, X.Areas(Counter).EntireRow)
      Next                                ' Loop until done.

      Y.Select                            ' Select the range Y.

   End Sub
				
範例如果選取範圍 $ A $ 1: $ A $ 3、 $ C $ 11: $ C $ 13 在工作表 Sheet1 和再執行 SelectRows Sub 程序,程序會決定選取範圍中有多少區 (有兩個: $ A $ 1: $ A $ 3 和 $ C $ 11: $ C $ 13),決定哪些組合的資料列包含每個區域 ($ 1: $ 3、 $ 11: $ 13),選取範圍 $ 1: $ 3、 $ 11: $ 13。

狀況說明

Microsoft 已確認這是在 Microsoft Excel 的版本問題列示於本文開頭。這個問題已經在 Windows 的 Microsoft Excel 97 和 Microsoft Excel 98 Macintosh 版本中獲得修正。

其他相關資訊

您可以藉由選取範圍再選取另一個範圍同時按住 CTRL 鍵鍵盤上,或使用 Microsoft Excel 版本 4.0 或 Visual Basic 同時選取兩個或多個範圍的命令來建立不相鄰選取範圍。

這篇文章中的資訊適用於:
  • Microsoft Excel 95a
  • Microsoft Excel 5.0c
  • Microsoft Excel 5.0 Standard Edition
  • Microsoft Excel 5.0a for Macintosh
關鍵字:?
kbmt kbbug kbprogramming KB108518 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:108518? (http://support.microsoft.com/kb/108518/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
Retired KB Article依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。