VBA宏用于拆分图纸
因此,我有VBA代码来执行此操作:VBA宏用于拆分图纸,vba,excel,Vba,Excel,因此,我有VBA代码来执行此操作: 从工作表“Sheet1”A1列复制:L1001 将它们粘贴到工作表“粘贴”中 清洁单元格(某些单元格中有“”) 删除所有空白行 从“粘贴”A1:L1001复制数据 在指定位置创建新工作簿,使用日期戳重命名工作表,从“粘贴”工作表粘贴数据并保存工作表 现在,我想在4-5个步骤之间添加另一个步骤: 4a。对A:A列进行计数,如果A:A>100行,则将其拆分为另一个工作簿,并使用[date_stamp]_2或其他方式保存 因此,如果工作簿包含340行,那么将有4个工
'~~> Copy A Range of Data
Worksheets("OPT_REPORT").Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> PasteSpecial Values Only
Worksheets("paste").Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
'~~> Clear Clipboard
Application.CutCopyMode = False
'~~> Find "" and replace with pneumonoultramicroscopicsilicovolcanoconiosis
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="", Replacement:="pneumonoultramicroscopicsilicovolcanoconiosis", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Find pneumonoultramicroscopicsilicovolcanoconiosis and replace with ""
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="pneumonoultramicroscopicsilicovolcanoconiosis", Replacement:="", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Finds a space in column A and deletes entire row
On Error Resume Next
Worksheets("paste").Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Dim wbI As Workbook, wbO As Workbook
Dim wsI As Worksheet, wsO As Worksheet
Date1 = Now()
'~~> Source/Input Workbook
Set wbI = ThisWorkbook
'~~> Set the relevant sheet from where you want to copy
Set wsI = wbI.Sheets("paste")
'~~> Destination/Output Workbook
Set wbO = Workbooks.Add
With wbO
'~~> Set the relevant sheet to where you want to paste
Set wsO = wbO.Sheets("Sheet1")
'~~>. Save the file
.SaveAs Filename:="C:\FILES\Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls", FileFormat:=56
'~~> Copy the range
wsI.Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> Paste it in say Cell A1. Change as applicable
wsO.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, _
SkipBlanks:=True, Transpose:=False
Workbooks("Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls").Close SaveChanges:=True
Sheets("paste").Range("A1:M1001").Clear
MsgBox "File Saved"
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'~~> Copy A Range of Data
Worksheets("OPT_REPORT").Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> PasteSpecial Values Only
Worksheets("paste").Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
'~~> Clear Clipboard
Application.CutCopyMode = False
'~~> Find "" and replace with pneumonoultramicroscopicsilicovolcanoconiosis
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="", Replacement:="pneumonoultramicroscopicsilicovolcanoconiosis", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Find pneumonoultramicroscopicsilicovolcanoconiosis and replace with ""
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="pneumonoultramicroscopicsilicovolcanoconiosis", Replacement:="", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Finds a space in column A and deletes entire row
On Error Resume Next
Worksheets("paste").Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Dim wbI As Workbook, wbO As Workbook
Dim wsI As Worksheet, wsO As Worksheet
Date1 = Now()
'~~> Source/Input Workbook
Set wbI = ThisWorkbook
'~~> Set the relevant sheet from where you want to copy
Set wsI = wbI.Sheets("paste")
'~~> Destination/Output Workbook
Set wbO = Workbooks.Add
With wbO
'~~> Set the relevant sheet to where you want to paste
Set wsO = wbO.Sheets("Sheet1")
'~~>. Save the file
.SaveAs Filename:="C:\FILES\Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls", FileFormat:=56
'~~> Copy the range
wsI.Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> Paste it in say Cell A1. Change as applicable
wsO.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, _
SkipBlanks:=True, Transpose:=False
Workbooks("Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls").Close SaveChanges:=True
Sheets("paste").Range("A1:M1001").Clear
MsgBox "File Saved"
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'~~> Copy A Range of Data
Worksheets("OPT_REPORT").Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> PasteSpecial Values Only
Worksheets("paste").Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
'~~> Clear Clipboard
Application.CutCopyMode = False
'~~> Find "" and replace with pneumonoultramicroscopicsilicovolcanoconiosis
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="", Replacement:="pneumonoultramicroscopicsilicovolcanoconiosis", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Find pneumonoultramicroscopicsilicovolcanoconiosis and replace with ""
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="pneumonoultramicroscopicsilicovolcanoconiosis", Replacement:="", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Finds a space in column A and deletes entire row
On Error Resume Next
Worksheets("paste").Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Dim wbI As Workbook, wbO As Workbook
Dim wsI As Worksheet, wsO As Worksheet
Date1 = Now()
'~~> Source/Input Workbook
Set wbI = ThisWorkbook
'~~> Set the relevant sheet from where you want to copy
Set wsI = wbI.Sheets("paste")
'~~> Destination/Output Workbook
Set wbO = Workbooks.Add
With wbO
'~~> Set the relevant sheet to where you want to paste
Set wsO = wbO.Sheets("Sheet1")
'~~>. Save the file
.SaveAs Filename:="C:\FILES\Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls", FileFormat:=56
'~~> Copy the range
wsI.Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> Paste it in say Cell A1. Change as applicable
wsO.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, _
SkipBlanks:=True, Transpose:=False
Workbooks("Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls").Close SaveChanges:=True
Sheets("paste").Range("A1:M1001").Clear
MsgBox "File Saved"
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'~~> Copy A Range of Data
Worksheets("OPT_REPORT").Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> PasteSpecial Values Only
Worksheets("paste").Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
'~~> Clear Clipboard
Application.CutCopyMode = False
'~~> Find "" and replace with pneumonoultramicroscopicsilicovolcanoconiosis
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="", Replacement:="pneumonoultramicroscopicsilicovolcanoconiosis", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Find pneumonoultramicroscopicsilicovolcanoconiosis and replace with ""
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="pneumonoultramicroscopicsilicovolcanoconiosis", Replacement:="", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Finds a space in column A and deletes entire row
On Error Resume Next
Worksheets("paste").Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Dim wbI As Workbook, wbO As Workbook
Dim wsI As Worksheet, wsO As Worksheet
Date1 = Now()
'~~> Source/Input Workbook
Set wbI = ThisWorkbook
'~~> Set the relevant sheet from where you want to copy
Set wsI = wbI.Sheets("paste")
'~~> Destination/Output Workbook
Set wbO = Workbooks.Add
With wbO
'~~> Set the relevant sheet to where you want to paste
Set wsO = wbO.Sheets("Sheet1")
'~~>. Save the file
.SaveAs Filename:="C:\FILES\Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls", FileFormat:=56
'~~> Copy the range
wsI.Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> Paste it in say Cell A1. Change as applicable
wsO.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, _
SkipBlanks:=True, Transpose:=False
Workbooks("Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls").Close SaveChanges:=True
Sheets("paste").Range("A1:M1001").Clear
MsgBox "File Saved"
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'~~> Copy A Range of Data
Worksheets("OPT_REPORT").Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> PasteSpecial Values Only
Worksheets("paste").Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
'~~> Clear Clipboard
Application.CutCopyMode = False
'~~> Find "" and replace with pneumonoultramicroscopicsilicovolcanoconiosis
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="", Replacement:="pneumonoultramicroscopicsilicovolcanoconiosis", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Find pneumonoultramicroscopicsilicovolcanoconiosis and replace with ""
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="pneumonoultramicroscopicsilicovolcanoconiosis", Replacement:="", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Finds a space in column A and deletes entire row
On Error Resume Next
Worksheets("paste").Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Dim wbI As Workbook, wbO As Workbook
Dim wsI As Worksheet, wsO As Worksheet
Date1 = Now()
'~~> Source/Input Workbook
Set wbI = ThisWorkbook
'~~> Set the relevant sheet from where you want to copy
Set wsI = wbI.Sheets("paste")
'~~> Destination/Output Workbook
Set wbO = Workbooks.Add
With wbO
'~~> Set the relevant sheet to where you want to paste
Set wsO = wbO.Sheets("Sheet1")
'~~>. Save the file
.SaveAs Filename:="C:\FILES\Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls", FileFormat:=56
'~~> Copy the range
wsI.Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> Paste it in say Cell A1. Change as applicable
wsO.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, _
SkipBlanks:=True, Transpose:=False
Workbooks("Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls").Close SaveChanges:=True
Sheets("paste").Range("A1:M1001").Clear
MsgBox "File Saved"
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'~~> Copy A Range of Data
Worksheets("OPT_REPORT").Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> PasteSpecial Values Only
Worksheets("paste").Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
'~~> Clear Clipboard
Application.CutCopyMode = False
'~~> Find "" and replace with pneumonoultramicroscopicsilicovolcanoconiosis
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="", Replacement:="pneumonoultramicroscopicsilicovolcanoconiosis", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Find pneumonoultramicroscopicsilicovolcanoconiosis and replace with ""
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="pneumonoultramicroscopicsilicovolcanoconiosis", Replacement:="", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Finds a space in column A and deletes entire row
On Error Resume Next
Worksheets("paste").Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Dim wbI As Workbook, wbO As Workbook
Dim wsI As Worksheet, wsO As Worksheet
Date1 = Now()
'~~> Source/Input Workbook
Set wbI = ThisWorkbook
'~~> Set the relevant sheet from where you want to copy
Set wsI = wbI.Sheets("paste")
'~~> Destination/Output Workbook
Set wbO = Workbooks.Add
With wbO
'~~> Set the relevant sheet to where you want to paste
Set wsO = wbO.Sheets("Sheet1")
'~~>. Save the file
.SaveAs Filename:="C:\FILES\Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls", FileFormat:=56
'~~> Copy the range
wsI.Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> Paste it in say Cell A1. Change as applicable
wsO.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, _
SkipBlanks:=True, Transpose:=False
Workbooks("Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls").Close SaveChanges:=True
Sheets("paste").Range("A1:M1001").Clear
MsgBox "File Saved"
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'~~> Copy A Range of Data
Worksheets("OPT_REPORT").Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> PasteSpecial Values Only
Worksheets("paste").Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
'~~> Clear Clipboard
Application.CutCopyMode = False
'~~> Find "" and replace with pneumonoultramicroscopicsilicovolcanoconiosis
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="", Replacement:="pneumonoultramicroscopicsilicovolcanoconiosis", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Find pneumonoultramicroscopicsilicovolcanoconiosis and replace with ""
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="pneumonoultramicroscopicsilicovolcanoconiosis", Replacement:="", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Finds a space in column A and deletes entire row
On Error Resume Next
Worksheets("paste").Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Dim wbI As Workbook, wbO As Workbook
Dim wsI As Worksheet, wsO As Worksheet
Date1 = Now()
'~~> Source/Input Workbook
Set wbI = ThisWorkbook
'~~> Set the relevant sheet from where you want to copy
Set wsI = wbI.Sheets("paste")
'~~> Destination/Output Workbook
Set wbO = Workbooks.Add
With wbO
'~~> Set the relevant sheet to where you want to paste
Set wsO = wbO.Sheets("Sheet1")
'~~>. Save the file
.SaveAs Filename:="C:\FILES\Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls", FileFormat:=56
'~~> Copy the range
wsI.Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> Paste it in say Cell A1. Change as applicable
wsO.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, _
SkipBlanks:=True, Transpose:=False
Workbooks("Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls").Close SaveChanges:=True
Sheets("paste").Range("A1:M1001").Clear
MsgBox "File Saved"
“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~p>如果我是你,我会检查第101个单元格是否有数据,然后是第201个单元格。。。
'~~> Copy A Range of Data
Worksheets("OPT_REPORT").Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> PasteSpecial Values Only
Worksheets("paste").Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
'~~> Clear Clipboard
Application.CutCopyMode = False
'~~> Find "" and replace with pneumonoultramicroscopicsilicovolcanoconiosis
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="", Replacement:="pneumonoultramicroscopicsilicovolcanoconiosis", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Find pneumonoultramicroscopicsilicovolcanoconiosis and replace with ""
Worksheets("paste").Range("A1:M1001").Cells.Replace What:="pneumonoultramicroscopicsilicovolcanoconiosis", Replacement:="", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'~~> Finds a space in column A and deletes entire row
On Error Resume Next
Worksheets("paste").Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Dim wbI As Workbook, wbO As Workbook
Dim wsI As Worksheet, wsO As Worksheet
Date1 = Now()
'~~> Source/Input Workbook
Set wbI = ThisWorkbook
'~~> Set the relevant sheet from where you want to copy
Set wsI = wbI.Sheets("paste")
'~~> Destination/Output Workbook
Set wbO = Workbooks.Add
With wbO
'~~> Set the relevant sheet to where you want to paste
Set wsO = wbO.Sheets("Sheet1")
'~~>. Save the file
.SaveAs Filename:="C:\FILES\Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls", FileFormat:=56
'~~> Copy the range
wsI.Range("A1:M1001").SpecialCells(xlCellTypeVisible).Copy
'~~> Paste it in say Cell A1. Change as applicable
wsO.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, _
SkipBlanks:=True, Transpose:=False
Workbooks("Test_" & Format(Date1, "ddmmyyyy-hhmmss") & ".xls").Close SaveChanges:=True
Sheets("paste").Range("A1:M1001").Clear
MsgBox "File Saved"
假设列A在最后一行之前始终有数据,您可以执行以下代码:
Dim row as integer: row = 1
Do while NOT IsEmpty(Sheet("paste").cells(row,1))
'Here goes the code from steps 5 to 6, saving the cells: "A" & row & ":L" & row+99
'ex.: A1:L100, A101:L200, and so on...
row = row +100
Loop
Freedox,请记住这不是免费的代码编写服务。然而,我们渴望帮助其他程序员(和有抱负的人)编写他们自己的代码。阅读上的帮助主题。您可能还想在这样做的同时获得一枚徽章。之后,请使用您迄今为止编写的VBA代码更新您的问题,以便完成您希望完成的任务。至少,请显示您现有的代码,以便您可以对如何修改它提出建议。对不起,各位。。。不想粘贴我的代码,因为它很长。。。但你是对的。。。我会这样做:)再次道歉。。。我不希望任何人为我写代码,只要指向正确的方向就行了…只需添加代码并将其拆分为步骤。。。这不是最干净的做事方式,但你喜欢把事情弄清楚……你下面有一个很好的建议。如果这不能解决您的问题,请添加评论以说明原因。