我有一張工作表'Sheet1'上有一個空白行的多個表。宏將多列中的數據排序,直到下一空白行,然後重複
我想讓VBA一個一個地排序。
考慮
- 每個表都有不同數量的行
- 在未來,列數量也將改變
什麼將永遠是相同的是:
- 列B上的表格之間的空白行,這意味着將成爲excel識別的起點ere是一張新桌子。
- 每個表總是會被C列進行排序
爲了給你一個更好的畫面,我在看消費數據交叉標籤,其中:
COLUMN A是問題類型
COLUMN B是答案選項
列C是頭是 「TOTAL」,它包含每答案選項%
COLUMS的其餘部分按照%C類似但具有不同的標題,如「男性」「女性」「用戶」「非用戶」「年齡18-25」「年齡26-34」....等等。
我想創建一個循環宏,它將按列C按升序對每個表(以及表內的所有列)進行排序,以確定它必須搜索下一個空格,並且該表將在下方。
我試着看循環,排序,並找到下一個空單元格。但由於某種原因,我無法將這些作品放在一起。
任何幫助將非常感謝!
以前的代碼嘗試:
Dim oneArea as Range
For Each oneArea in Range("C:C").SpecialCells(xlCellTypeConstants).Area
oneArea.EntireRow.Sort key1:=oneArea.Cells(1,1), order1:=xlAscending
Next oneArea
對於裁判:這一個是最接近的例子,宏我發現了什麼我去爲,但它不適用於我的情況/無法使其工作:
Macro to sort data until blank row(s), then repeat
你能張貼一些樣本數據嗎? (複製/粘貼爲表格)還是最差,數據的屏幕截圖以及您的預期輸出?另外,你到目前爲止嘗試過什麼?請發佈您的任何代碼。 – BruceWayne
當然,我無法附加excel,添加了一些截圖和代碼。 – Tamichan
對於查找下一個表,您可以使用'Selection.End(xlDown).Select',當您找到新表的第一個單元格並選擇它時,可以使用它來選擇要排序的區域:'Selection.resize(Selection。 Rows.Count,Selection.Columns.Count - 1).Offset(0,1).Select' –