在 Excel 2016 中使用返回數組的 VBA 函數

數組公式是 Excel 最強大的功能之一。如果您熟悉數組公式,您會很高興知道您可以創建返回數組的 VBA 函數。

返回月份名稱數組

讓我們從一個簡單的例子開始。MonthNames 函數返回一個由 12 個元素組成的數組——你猜對了——月份名稱。

函數 MonthNames()
  MonthNames = Array(“一月”、“二月”、“三月”、_
   “四月”、“五月”、“六月”、“七月”、“八月”、_
   “九月”、“十月”、“十一月”、“十二月”)
結束函數

要在工作表中使用 MonthNames 函數,您必須將其作為 12 個單元格的數組公式輸入。例如,選擇範圍 A2:L2 並輸入=MonthNames()。然後按 Ctrl+Shift+Enter 在所有 12 個選定單元格中輸入數組公式。檢查結果。

在 Excel 2016 中使用返回數組的 VBA 函數

使用 MonthNames 函數返回一個 12 元素數組。

如果您希望月份名稱顯示在一列中,請選擇一列中的 12 個單元格並使用此數組公式。(不要忘記按 Ctrl+Shift+Enter 輸入它。)

=TRANSPOSE(MonthNames())

您還可以從數組中選擇一個月。這是一個公式(不是數組公式),它顯示數組的第四個元素:April。

=INDEX(MonthNames(),4)

返回一個排序列表

假設您有一個要在另一個單元格區域中按排序順序顯示的名稱列表。有一個工作表功能為您做這件事不是很好嗎?

這個自定義函數就是這樣做的:它將單列單元格範圍作為其參數,然後返回一個由這些單元格排序的數組。範圍 A2:A13 包含一些名稱。範圍 C2:C13 包含此多單元格數組公式。(請記住,您必須按 Ctrl+Shift+Enter 輸入公式。)

在 Excel 2016 中使用返回數組的 VBA 函數

使用自定義函數返回排序範圍。

=排序(A2:A13)

這是 Sorted 函數的代碼:

函數排序(Rng As Range)
  Dim SortedData() 作為變體
  將單元格調暗為範圍
  Dim Temp As Variant, i As Long, j As Long
  Dim NonEmpty As Long
' 將數據傳輸到 SortedData
  對於 Rng 中的每個單元格
    如果不是 IsEmpty(Cell) 那麼
      非空 = 非空 + 1
      ReDim 保留已排序數據(1 到非空)
      SortedData(NonEmpty) = Cell.Value
    萬一
  下一個單元格
'對數組進行排序
  對於 i = 1 到非空
    對於 j = i + 1 到非空
      如果 SortedData(i) > SortedData(j) 那麼
        溫度 = SortedData(j)
        SortedData(j) = SortedData(i)
        SortedData(i) = 溫度
      萬一
    下一個
  接下來我
'轉置數組並返回它
  排序 = Application.Transpose(SortedData)
結束函數

Sorted 函數首先創建一個名為 SortedData 的數組。該數組包含參數範圍內的所有非空值。接下來,使用冒泡排序算法對 SortedData 數組進行排序。因為數組是水平數組,所以在函數返回之前必須進行轉置。

Sorted 函數適用於任何大小的範圍,只要它位於單個列或行中。如果未排序的數據在一行中,則您的公式需要使用 Excel 的 TRANSPOSE 函數來水平顯示已排序的數據。例如:

=TRANSPOSE(排序(A16:L16))

Leave a Comment

HTKK 5.0.3

HTKK 5.0.3

HTKK 是稅務總局免費發布的報稅支援軟體,提供企業快速建立報稅表。了解HTKK的安裝步驟與升級功能。

有用的 Microsoft Power Query 日期函數

有用的 Microsoft Power Query 日期函數

探索 Excel 中的 Microsoft Power Query 日期函數,快速處理日期計算和操作,其中包含添加天數、提取日期部分等功能的詳細說明。

如何在 Excel 2019 中使用 3D 地圖功能

如何在 Excel 2019 中使用 3D 地圖功能

3D 地圖是 Excel 2019 中提供的令人興奮的可視化分析功能,讓你能夠在 Excel 中創建動態的 3D 地圖。探索如何利用這項技術提升數據分析的效果。

如何在 Excel 中使用 SKEW 和 SKEW.P 函數

如何在 Excel 中使用 SKEW 和 SKEW.P 函數

了解如何在 Excel 中使用 SKEW 和 SKEW.P 函數來衡量數據分佈的偏度,這對於分析數據的對稱性至關重要。

如何為 Excel 儀表板創建時間線切片器

如何為 Excel 儀表板創建時間線切片器

時間軸切片器的工作方式與標準切片器的工作方式相同,因為它允許您使用視覺選擇機製過濾數據透視表。了解如何在 Excel 中使用時間軸切片器來高效管理日期字段。

如何在 Excel 2016 中使用 XLOOKUP 函數

如何在 Excel 2016 中使用 XLOOKUP 函數

了解如何在 Excel 2016 中使用 XLOOKUP 函數,這是一個 VLOOKUP 函數的優秀替代品,具有更強大和靈活的功能!

智能表9.1.1

智能表9.1.1

Smartsheet 是一個動態工作平台,可讓您管理專案、建立工作流程以及與團隊合作。

共享點

共享點

SharePoint 是一個基於 Web 的協作系統,它使用各種工作流程應用程式、「清單」資料庫和其他 Web 元件以及安全功能來控制業務群組的協同工作。

萬年曆1.0.38/1.0.36

萬年曆1.0.38/1.0.36

萬年日曆是一款手機上的日曆檢視應用程式,可協助您在手機上快速查看陰陽日期,從而安排您的重要工作。

微軟 Outlook 2021

微軟 Outlook 2021

Microsoft Outlook 是由 Microsoft Corporation 開發的商業和生產力應用程式。