2015-11-15 144 views
-2

早上好, 我有一個包含600列和500行的電子表格(行數和列數不總是相同)。我需要將前三列(將被粘貼到一個新的工作簿中)和接下來的6列進行復制。因此,請在新的工作簿中複製abc和defghi列。然後再將列abc和下一個六列jklmno複製到一個新的工作簿中,然後故事繼續,直到我們到達沒有數據的列。 這件事甚至可能嗎?Vba從一個電子表格創建多個工作簿

+1

是的,這是可能。這是否回答你的問題,或者你是否只是釣魚找人來爲你寫代碼? – Jeeped

+0

非常感謝你的隊友。我試圖找到一段代碼來做這個例程,但是我在網上找不到任何東西。 – user3214725

回答

0

我不是練成分鐘,所以我無法測試,但你應該能夠推斷出從該做的事:

Option Explicit 

Public Sub ExportData() 

Dim varColumn As Long 
Dim varColumnEnd As Long 
Dim varRowEnd As Long 
Dim varRowStart As Long 
Dim varSplice As Long 
Dim varName As String 
Dim varCount As Long 
Dim varBook As Workbook 
Dim varPath As String 

varRowStart = 1 
varRowEnd = ThisWorkbook.Sheets("Sheet1").Range("A65000").End(xlUp).Row 
varColumnEnd = ThisWorkbook.Sheets("Sheet1").Range("XFD1").End(xlToLeft).Column 
varCount = 1 
varSplice = 6 

For varColumn = 4 To varColumnEnd 

    If varColumn < varColumnEnd Then 

     Set varBook = Workbooks.Add 

     ThisWorkbook.Sheets("Sheet1").Range("A" & varRowStart & ":C" & varRow).Copy 
     varBook.Sheets("Sheet1").Range("A1").PasteSpecial xlPasteValues, xlPasteSpecialOperationNone, False, False 
     Application.CutCopyMode = False 
     ThisWorkbook.Sheets("Sheet1").Range("D" & varRowStart & ":I" & varRow).Offset(0, (varCount - 1) * varSplice).Copy 
     varBook.Sheets("Sheet1").Range("D1").PasteSpecial xlPasteValues, xlPasteSpecialOperationNone, False, False 
     Application.CutCopyMode = False 

     varBook.SaveAs "C:/" & varName & "_" & Format(varCount, "00") & ".xlsx" 
     varBook.Close 

     Set varBook = Nothing 

    End If 

Next 

End Sub 

希望幫助

+0

非常感謝你的隊友偉大的作品 – user3214725

+0

不用擔心隊友,很高興我可以幫助 – AranDG

相關問題