Mac上的Excel並不總是和Windows上的一樣強大。除非巨集是專門為Mac建立的,否則巨集實際上是不起作用的。
從2013年開始,微軟帶回了巨集。巨集有兩種型別:一種是可以透過快速記錄操作來建立的巨集,另一種是使用VBA來設計更高階的自動化程式的巨集。在Office2016中,Excel在所有平臺上使用相同的程式碼庫。此更改將使巨集更容易跨平臺工作。
讓我們來看看這是如何在macOS上工作的。
預設情況下,在Mac上使用Excel中的巨集可能無法啟用。此設定是因為巨集可能是惡意軟體向量。最簡單的方法是檢視Excel功能區上是否有“開發人員”選項卡。如果您沒有看到它,那麼啟用它很簡單。
單擊選單欄中的Excel,然後在下拉列表中選擇“首選項”。在選單中,單擊功能區和工具欄。在右邊的列表中,Developer應該位於底部,單擊複選框。最後,單擊“儲存”,您將看到“開發人員”選項卡顯示在功能區的末尾。
使用巨集建立每個工作簿後,請將其儲存為新格式.xl**,以便在重新開啟檔案後使用巨集。如果您忘記了,Excel會在每次嘗試儲存時提醒您。您還需要在每次開啟檔案時啟用巨集。
雖然您可以編寫巨集,但這可能不適合所有人。如果您還沒有準備好開始使用VBA,Excel允許您在現有工作表中記錄巨集的步驟。單擊“開發人員”選項卡檢視您的選項。
您正在功能區中查詢第三個選項“錄製巨集”。單擊此項,將彈出一個對話方塊,允許您命名巨集並設定鍵盤快捷鍵。您可以將巨集的範圍限定到當前工作簿、新工作簿或個人巨集工作簿中。個人巨集工作簿位於您的使用者配置檔案中,允許您在檔案之間使用巨集。
一旦您記錄了您的操作,它們就可以在同一選項卡上使用。單擊巨集將顯示工作簿中儲存的巨集。單擊巨集名稱,然後單擊執行以執行錄製的操作。
對於一個巨集示例,您將執行一個每日銷售表,銷售按小時總數進行細分。巨集將新增每日總銷售額,然後在每個小時週期的最後一列中新增平均值。如果你在零售或其他銷售崗位工作,這是一個有用的表格來跟蹤收入。
我們需要把第一張紙放好。每天使用第一個空格作為模板複製到新選項卡可以節省一些時間。在第一列/行中輸入小時/日期。在頂部加上星期一到星期五。
然後在第一列中,把每小時的總數從8到5進行細分。我用的是24小時制,但如果你願意,你可以用AM/PM表示法。您的工作表應該與上面的螢幕截圖匹配。
新增一個新選項卡,並將模板複製到其中。然後填寫當天的銷售資料。(如果沒有資料填充此工作表,可以在所有單元格中輸入=randbween(101000)來建立虛擬資料。)接下來,單擊功能區中的“開發人員”。
然後,單擊錄製巨集。在對話方塊中輸入名稱AverageandSum,並將其儲存在此工作簿中。如果你願意,你可以設定一個快捷鍵。如果需要巨集功能的詳細資訊,可以輸入說明。單擊“確定”開始設定巨集。
在每小時列表的底部輸入每日總計。在其旁邊的單元格中,輸入=SUM(B2:B10)。然後複製並貼上到其餘的列中。然後在標題中,在最後一列之後新增Average。然後在下一個單元格中,輸入=Average(B2:F2)。然後,將其貼上到列其餘的單元格中。
然後單擊停止錄製。巨集現在可以在新增到工作簿的每個新工作表上使用。一旦有了另一張資料表,請返回“開發人員”並單擊“巨集”。你的巨集應該突出顯示,點選執行新增你的總和和平均數。
本例可以為您節省幾個步驟,但對於更復雜的操作,這些步驟可能會累加起來。如果對格式相同的資料執行相同的操作,請使用錄製的巨集。
Excel中手動錄製的巨集有助於處理大小和形狀始終相同的資料。如果要對整個工作表執行操作,它也很有用。你可以用你的巨集來證明這個問題。
在工作表中再新增一小時和一天,然後執行巨集。您將看到巨集覆蓋了新資料。解決這個問題的方法是使用VBA(visualbasic的精簡版)使用程式碼使巨集更具動態性。實現的重點是辦公自動化。
它並不像Applescript那樣容易被獲取,但Office的自動化完全是圍繞Visual Basic構建的。所以,一旦你在這裡使用它,你就可以很快地轉身,並在其他辦公應用程式中使用它。(如果你在工作中使用Windows PC,這也會有很大幫助。)
在Excel中使用VBA時,有一個單獨的視窗。上面的螢幕截圖是我們錄製的巨集,它出現在程式碼編輯器中。視窗模式有助於在學習過程中使用程式碼。當巨集掛起時,可以使用除錯工具檢視變數和工作表資料的狀態。
Office 2016現在提供了完整的Visual Basic編輯器。它允許您使用物件瀏覽器和除錯工具,這些工具過去僅限於Windows版本。您可以透過進入“檢視”>;“物件瀏覽器”或按Shift+Command+B來訪問物件瀏覽器。然後您可以瀏覽所有可用的類、方法和屬性。這對下一節的程式碼構造非常有幫助。
在開始編寫巨集之前,讓我們先在模板中新增一個按鈕。這一步使新手更容易訪問巨集。他們可以單擊一個按鈕來呼叫巨集,而不是深入到選項卡和選單中。
切換到最後一步建立的空白模板表。單擊Developer返回選項卡。一旦你在標籤上,點選按鈕。接下來,單擊模板上工作表中的某個位置以放置按鈕。出現“巨集”選單,命名巨集並單擊“新建”。
visualbasic視窗將開啟;您將看到它在專案瀏覽器中作為Module2列出。“程式碼”窗格的頂部有Sub AverageandSumButton(),底部有幾行。您的程式碼需要介於這兩行之間,因為它是巨集的開頭和結尾。
首先,需要宣告所有變數。它們在下面的程式碼塊中,但是需要注意它們是如何構造的。您應該在名稱前使用Dim宣告所有變數,然後使用datatype宣告所有變數。
Sub AverageandSumButton() Dim RowPlaceHolder As Integer Dim ColumnPlaceHolder As Integer Dim StringHolder As String Dim AllCells As Range Dim TargetCells As Range Dim AverageTarget As Range Dim SumTarget As Range既然已經有了所有的變數,就需要立即使用一些範圍變數。範圍是將工作表的各個部分作為地址儲存的物件。變數All Cells將設定為工作表上的所有活動單元格,其中包括列和行標籤。您可以透過呼叫ActiveSheet物件,然後呼叫UsedRange屬性來實現這一點。
問題是您不希望標籤包含在平均值和總和資料中。相反,您將使用AllCells範圍的一個子集。這將是TargetCells的射程。您可以手動宣告其範圍。它的起始地址將是範圍第二列第二行的單元格。
您可以透過呼叫AllCells範圍來呼叫它,使用它的Cells類使用(2,2)來獲取特定的單元格。要獲取範圍中的最後一個單元格,仍將呼叫AllCells。這次使用SpecialCells方法來獲取屬性xlCellTypeLastCell。您可以在下面的程式碼塊中看到這兩個。
Set AllCells = ActiveSheet.UsedRange Set TargetCells = Range(AllCells.Cells(2, 2), AllCells.SpecialCells(xlCellTypeLastCell))接下來的兩段程式碼是針對每個迴圈的。這些迴圈透過一個物件來作用於該物件的每個子集。在本例中,您將執行其中兩個操作,每行一個,每列一個。因為它們幾乎完全相同,所以只有一個在這裡;但是它們都在程式碼塊中。細節幾乎完全相同。
在為每行啟動迴圈之前,需要設定迴圈寫入每行平均值的目標列。您可以使用ColumnPocholder變數來設定此目標。將其設定為AllCells的Cells類的Count變數。新增一個,透過附加+1將其移到資料的右側。
接下來,您將透過使用每個迴圈來啟動迴圈。然後,您想為子集建立一個變數,在這種情況下,子例程。在輸入之後,我們設定了我們正在解析TargetCells的主要物件。在末尾追加.Rows,將迴圈限制為僅限於每一行,而不是範圍內的每個單元格。
在迴圈中,您使用活動頁單元格方法在工作表上設定特定目標。座標透過使用設定子行要獲取當前迴圈中的行。然後,您將使用ColumnPlaceHolder作為其他座標。
這三個步驟都用這個。第一個在括號後附加.value並設定為工作表函式。平均值(副標題)。這會將行的平均值的公式寫入目標單元格。下一行追加.Style並將其設定為“Currency”。此步驟與工作表的其餘部分匹配。在最後一行,新增。字型粗體把它設為真。(注意,這一行沒有引號,因為它是布林值。)這一行加粗字型,使摘要資訊從工作表的其餘部分中脫穎而出。
這兩個步驟都在下面的程式碼示例中。第二個迴圈為列交換行,並將公式更改為Sum。使用此方法將計算與當前工作表的格式繫結。否則,它將連結到錄製巨集時的大小。因此,當您工作更多天或更多小時時,函式會隨著資料的增長而增長。
ColumnPlaceHolder = AllCells.Columns.Count + 1 For Each subRow In TargetCells.Rows ActiveSheet.Cells(subRow.Row, ColumnPlaceHolder).Value = WorksheetFunction.Average(subRow) ActiveSheet.Cells(subRow.Row, ColumnPlaceHolder).Style = "Currency" ActiveSheet.Cells(subRow.Row, ColumnPlaceHolder).Font.Bold = True Next subRow RowPlaceHolder = AllCells.Rows.Count + 1 For Each subColumn In TargetCells.Columns ActiveSheet.Cells(RowPlaceHolder, subColumn.Column).Value = WorksheetFunction.Sum(subColumn) ActiveSheet.Cells(RowPlaceHolder, subColumn.Column).Style = "Currency" ActiveSheet.Cells(RowPlaceHolder, subColumn.Column).Font.Bold = "True" Next subColumn接下來,標記新行和列,再次設定RowPlaceHolder和columnpocholder。首先,使用所有單元格。行獲取範圍中的第一行,然後所有單元格。列+1獲取最後一列。然後使用與迴圈相同的方法將值設定為“Average Sales”。你也會用同樣的方法。字型粗體屬性以加粗新標籤。
然後將其反轉,將佔位符設定為第一列和最後一行,以新增“Total Sales”。你也要加粗。
這兩個步驟都在下面的程式碼塊中。這是end Sub所指出的巨集的結尾。現在您應該擁有整個巨集,並且可以單擊按鈕執行它。如果你想作弊,你可以把所有這些程式碼塊貼上到excel表中,但是在哪裡有樂趣呢?
ColumnPlaceHolder = AllCells.Columns.Count + 1 RowPlaceHolder = AllCells.Row ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Value = "Average Sales" ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Font.Bold = True ColumnPlaceHolder = AllCells.Column RowPlaceHolder = AllCells.Rows.Count + 1 ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Value = "Total Sales" ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Font.Bold = TrueEnd Sub錄製的巨集非常適合用於可預測的重複。即使是像調整所有單元格大小和加粗標題這樣簡單的事情,這些都可以節省您的時間。避免常見的巨集錯誤。
visualbasic為Mac-Excel使用者打開了深入研究辦公自動化的大門。visualbasic傳統上只在Windows上可用。它允許巨集動態地適應資料,使它們更加通用。如果你有耐心的話,這可能是通向更高階程式設計的大門。
想要更多省時的電子表格技巧嗎?瞭解如何在Excel中使用條件格式自動突出顯示特定資料,在Mac上使用數字條件突出顯示。
...滑鼠右鍵並選擇“複製”,或單擊功能區“常用”選項卡上的“複製”按鈕。 選擇要標題開始的行和列中的單元格。 單擊滑鼠右鍵,然後選擇“貼上特殊”,或單擊“貼上”,然後在功能區的“常...
...不滿意,那麼可以使用此技巧的原因。與其經歷幾次風格上的改變,不如點選幾下就完成。 ...
...要使用模板,請開啟Outlook日曆,然後單擊主日曆功能區上的“開發人員”選項卡。導航到在彈出視窗中儲存表單的位置,選擇模板,然後單擊“開啟”。現在,您可以完成事件詳細資訊,儲存它,並將其正常傳送給參與者。 ...
... 這些快捷鍵似乎很難記住,但它們與標準鍵盤上的特殊字元相對應,但數字格式除外,這是事實上的預設設定。 ...
...擊“在單獨的選項卡中顯示”,將這些按鈕傳送到功能區上的新巨集選項卡。 ...
... 錄製時,可以使用“開發人員”選項卡上的“使用相對引用”切換。如果啟用,巨集將被記錄為相對於初始單元格的操作。例如,如果在錄製時單擊單元格A1到A3,則從單元格J6執行巨集會將游標移動到J8。如果...
...el中,轉到“檔案”>“選項”。在“常規”選項卡上的“建立新工作簿時”下,可以在“包含這麼多工作表”中輸入值。 ...
如果不使用這個簡陋的小盒子,你就無法在Microsoft Excel中的任何地方使用它。但是Excel中的名稱框在哪裡呢?它位於工作表中的編輯欄旁邊,顯示選定單元格或物件的地址。但這只是最明顯的用途。您可以使用它在圖紙周圍導航...
...斷地繼續工作。如果你真的想用iTunes,你必須暫停選單欄上的Overkill。(但您仍然可以透過將iPhone連線到Mac電腦為其充電。) ...