2014-04-22 87 views
-2

下面是实际的代码。它复制特定行并将其粘贴到新的Excel工作簿上,然后将另一个Excel文件复制到新工作簿中,然后这两个文件将进行协作。我没有得到任何错误,现在我需要添加更多的东西给它,也就是说,我需要追加文件名(MasterDumppath,Finalpath)与当前的日期和时间,我也需要删除objworkbook2。 请帮忙。用于删除Excel工作簿的VBScript

on error resume next 
set objexcel = createobject ("Excel.Application") 

d = Now() 

p = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName) 

'Suppress the dialog boxes 
objExcel.DisplayAlerts = False 

Dim objexcel 
Dim objworkbook1, objworkbook2,objworkbook3, objworksheet 
Dim i,s 
Dim startrow,intnewrow 
Dim endrow,endrow1,endrow2,endrow3,endrow4,endrow5 
Dim countsheet 
Dim Row,Row1,Rows 

Const xlContinuous = 1 
Const xlThick = 4 
const xlLeft = 2 

MovReportPath = p & "\Copy of Movement Report" 
PSAlertpath = p & "\Emails PS Alert" 
MasterDumpPath = p & "\Master_Dump" 
Finalpath = p & "\Final_Report" 

'Creating a excel file for master dump 
Set objWorkbook2= objExcel.Workbooks.Add() 
objWorkbook2.SaveAs(MasterDumpPath) 

'Adding a column Called Region 
objworkbook2.worksheets("Sheet1").cells(1,5).value = "Region" 
objWorkbook2.Worksheets("Sheet1").Cells(1,5).Font.Bold = True 


'opening the file Movement report 
set objworkbook1 = objexcel.workbooks.open(MovReportPath) 

'Counting the sheets in Movement Report 
countSheet = objworkbook1.Sheets.Count 

'initializations 
intnewrow=1 
i = 1 

'Copying data from sheets 
for i = 1 to countsheet 

Set objWorksheet = objWorkbook1.WorkSheets(i) 
objworksheet.Activate 

'copy from the 2nd row 
If intNewRow = 1 Then 
startrow = 1 
Else 
startrow = 2 
End If 

'count the number of used row of every sheet 
endrow = objWorkbook1.Worksheets(i).UsedRange.Rows.Count 

name = objworkbook1.Sheets(i).Name 

if objworkbook1.worksheets(i).cells(1,1) = "Movement Type" then 

'copy the data 
objWorkbook1.Worksheets(i).Range("A" & startrow &":D"& endrow).copy 

'count the rows before pasting 
endrow3 = objWorkbook2.Worksheets("sheet1").UsedRange.Rows.Count 

'paste it on workbook2 
objWorkbook2.Worksheets("Sheet1").Cells(intNewRow,1).Pastespecial 

'count the rows after pasting 
Row = objWorkbook2.Worksheets("sheet1").UsedRange.Rows.Count 
endrow2 = Row + 1 

'copying the country names to Region column 
select case name 

case "UK" 
objworkbook2.worksheets("Sheet1").Range("E2" &":E" & endrow2).value = "London" 

case "IND" 
objworkbook2.worksheets("Sheet1").Range("E" & endrow3 &":E" & endrow2).value = "GSSC Delhi" 

case "USA" 
objworkbook2.worksheets("Sheet1").Range("E" & endrow3 &":E" & endrow2).value = "Americas" 

case "LUX" 
objworkbook2.worksheets("Sheet1").Range("E" & endrow3 &":E" & endrow2).value = "Luxembourg" 

case "BEL" 
objworkbook2.worksheets("Sheet1").Range("E" & endrow3 &":E" & endrow2).value = "Brussels" 

case "BRA" 
objworkbook2.worksheets("Sheet1").Range("E" & endrow3 &":E" & endrow2).value = "Brussels" 

case "UAE" 
objworkbook2.worksheets("Sheet1").Range("E" & endrow3 &":E" & endrow2).value = "UAE" 

case "AMS" 
objworkbook2.worksheets("Sheet1").Range("E" & endrow3 &":E" & Row).value = "Amsterdam" 

End select 

'increment the row 
intNewRow = intNewRow + (endrow - startrow + 1) 

End if 
next 

'Close Movement Report file 
objworkbook1.close 

'Name the sheet of master dump as master dump 
objworkbook2.Sheets(1).Name = "Master Dump" 

'Save Master Dump 
objworkbook2.save 

'open PS Alet file 
set objworkbook3 = objexcel.workbooks.open(PSAlertpath) 

'Sheetname in PSAlert 
Sheetname = objworkbook3.Sheets(1).Name 

'Save the file as Final Report 
objWorkbook3.SaveAs(Finalpath) 

'count the rows in master dump file 
Row1 = objWorkbook2.Worksheets("Master Dump").UsedRange.Rows.Count 

'copy data from master dump 
objworkbook2.worksheets("Master Dump").Range("A2:E" & row1).copy 

'Close master dump file 
objworkbook2.close 

'Same sheetname copied to Final Report 
sheetname3 = objworkbook3.sheets(1).Name 
sheetname3 = sheetname 

'count the rows in Final Report 
Rows = objWorkbook3.Worksheets(sheetname3).UsedRange.Rows.Count 

endrow4 = Rows + 1 

'Paste data of master dumo to Final Report 
objworkbook3.worksheets(sheetname3).cells(endrow4,5).PasteSpecial 

'count rows of Final report after pasting 
endrow5 = objWorkbook3.Worksheets(sheetname3).UsedRange.Rows.Count 

'write data to Report type column 
for s = endrow4 to endrow5 
if objworkbook3.worksheets(sheetname3).cells(s,4).value = "" then 
objworkbook3.worksheets(sheetname3).cells(s,4).value = "Movement Type" 
End if 
Next 

'Format the EmpID cell 
objexcel.activesheet.Columns("F:F").Select 
objexcel.activesheet.Range("F2").Activate 
objexcel.Selection.NumberFormat = "General" 


'Removing Duplicates 
Macro1 
Sub Macro1() 
objworkbook3.worksheets(sheetname3).UsedRange.RemoveDuplicates Array(4,5,7),1 
End Sub 

'Allignment 
objworkbook3.Worksheets(sheetname3).usedrange.HorizontalAlignment = xlLeft 
'objWorkbook3.Worksheets(sheetname3).usedrange.HorizontalAlignment = -4108 

'Bordering 
objworkbook3.Activesheet.usedrange.Borders.Linestyle = xlContinuous 
objworkbook3.Activesheet.cells(1,1).select 

objworkbook3.save 
objworkbook3.close 


msgbox "Done" 
+0

你就不能删除它,就象任何其他文件? 'CreateObject(“Scripting.FileSystemObject”)。DeleteFile()' – Bond

+0

不,它不工作。 – Learner

+1

告诉我们你有什么。 – Bond

回答

0
set objworkbook = objexcel.open("C:\Documents and Settings\SupriyaS\Desktop\Report") 

这是否需要结束与正确的扩展即Report.xlsx

+0

它需要更多。 “Open”甚至不是Excel的“Application”对象的一种方法。我想他正在寻找'objExcel.Workbooks.Open()',但我希望他能给我们提供出现的错误消息,以便我们一次一个地解决他的问题。 – Bond

+0

我正在尝试删除的文件应该在写入脚本时使用.xlsx。 – Learner

相关问题