我有幾張工作表,其中包含數百個需要分成單個工作簿(每個工作簿一個價格網格)的價格網格。這裏所需的VBA水平在很大程度上超過了我對這個主題的基本知識,我將不勝感激您願意給予的幫助。使用動態自動調整VBA範圍從工作表創建工作簿
每個工作表中有許多由空白行和空白列分隔不同大小的這些網格:
+----------+------+------+------+------+------+ | Product1 | | 100 | 200 | 300 | 400 | | Product2 | 600 | 862 | 976 | 1024 | 1456 | | Product3 | 800 | 975 | 1076 | 1156 | 1287 | | Product4 | 1000 | 1076 | 1187 | 1245 | 1867 | | | 1200 | 1187 | 1294 | 1354 | | +----------+------+------+------+------+------+
我需要做一個產品對應一個Excel文件/工作簿。每個工作簿的名稱將是A列中的產品名稱,並且內容必須是沒有列A的完整網格,因此只是所有數字。每個工作簿都可以保存在ActiveWorkbook.Path中。給出的示例將生成4個名爲Product1,Product2,Product3和Product4的文件。每個文件只包含從單元格A1開始的定價網格,如示例中所示,有時爲空。
以下代碼選擇工作表上的每個價格網格塊,但是我不確定如何遍歷數據以提取產品名稱。在這個例子中,「Sheet1」和「A1」也需要是動態值,這些值將遍歷所有工作表並查找每個工作表中的所有塊。
Sub DynamicRange()
Dim sht As Worksheet
Dim StartCell As Range
Set sht = Worksheets("Sheet1")
Set StartCell = Range("A1")
StartCell.CurrentRegion.Select
End Sub
請幫忙嗎?
非常感謝您的回覆Daniel。是的,爲了澄清,數據由空行分隔。 – Cheryl
我正在努力,確實是選擇範圍。在示例數據中,定價網格僅適用於4種產品,因此,當我們到達空行時,我們必須停止爲特定網格創建工作簿,並選擇下一個空行或下一行之後的下一個網格片。這是否使它更清晰? – Cheryl
輸出將是4個文件,看起來像這樣+ -------- + ------- + -------- + --------- + - ------- + | | 100 | 200 | 300 | 400 | | 600 | 862 | 976 | 1024 | 1456 | | 800 | 975 | 1076 | 1156 | 1287 | | 1000 | 1076 | 1187 | 1245 | 1867 | | 1200 | 1187 | 1294 | 1354 | | + -------- + ------- + -------- + --------- + -------- + – Cheryl