Welcome, Guest. Please login or register.
Login with username, password and session length

 
Advanced search

18539 Posts in 4847 Topics- by 32743 Members - Latest Member: watty
 

AdvancedQTP forums have been nominated as a finalist in ATI’s 2nd annual automation honors awards!

We’d like to thank you for your continued support and participation, and urge you to hurry and vote.

Make you voice count! 


Pages: [1]   Go Down
Print
0 Members and 1 Guest are viewing this topic.
Author Topic: How to copy a Excel Sheet?    (Read 1236 times)
Megan Fan
FRProject
User
*
Offline Offline

Posts: 48


« on: March 30, 2008, 11:44:34 PM »

I want to copy an Excel Sheet to an empty sheet. My scripts are:

Set ExcelObj = CreateObject("Excel.Application")
Set activexobj=CreateObject("WScript.Shell")
ExcelObj.Visible = true
ExcelObj.Workbooks.Open "C:\temp.xls"
wait(2)
Set objSheet1 = ExcelObj.Worksheets("MEMBERS")
objSheet1.Activate
objSheet1.range("A1").Select
activexobj.Sendkeys "^a"
activexobj.Sendkeys "^c"

Set objSheet2 = ExcelObj.Worksheets("Sheet2")
objSheet2.Activate
objSheet2.range("A1").Select 
activexobj.Sendkeys "^a"
activexobj.SendKeys "^v"
wait(2)

Copy result is failed. The Sheet2 is still empty. Debugging into these scripts and I found after "^a" statement, all the scripts in QTP are selected, but the "MEMBERS" sheet is selected. Why this happaned?
Logged
srikanth Narayanan
User
*
Offline Offline

Posts: 40


« Reply #1 on: March 31, 2008, 12:33:04 AM »

Hi Megan Fan,
try if you want to create a new excfel sheet itself,

Set ExcelObj = CreateObject("Excel.Application")
Set activexobj=CreateObject("WScript.Shell")
ExcelObj.Visible = true
ExcelObj.Workbooks.Open "C:\temp.xls"
ExcelObj.Workbooks.saveas "D:\temp1.xls"

but if you want to create add that in your existing sheet itself then

Set ExcelObj = CreateObject("Excel.Application")
ExcelObj.Workbooks.Open "C:\temp.xls"
ExcelObj.Worksheets("MEMBERS").Activate
Activesheet.usedrange.select
selection.copy

ExcelObj.Worksheets("Sheet2").Activate
ActiveSheet.Paste


Please let us know if that works
Logged
Megan Fan
FRProject
User
*
Offline Offline

Posts: 48


« Reply #2 on: March 31, 2008, 01:27:13 AM »

Run these statement:
Set ExcelObj = CreateObject("Excel.Application")
ExcelObj.Workbooks.Open "C:\temp.xls"
ExcelObj.Worksheets("MEMBERS").Activate
Activesheet.usedrange.select
selection.copy

ExcelObj.Worksheets("Sheet2").Activate
ActiveSheet.Paste

It prompted "Object Required: 'ActiveSheet'".
Logged
srikanth Narayanan
User
*
Offline Offline

Posts: 40


« Reply #3 on: March 31, 2008, 01:40:48 AM »

Sorry if it's not working. did u try ExcelObj.Worksheets("MEMBERS") instead og the active sheet
Logged
Megan Fan
FRProject
User
*
Offline Offline

Posts: 48


« Reply #4 on: March 31, 2008, 07:00:18 PM »

These statements will work in QTP.

Set ExcelObj = CreateObject("Excel.Application")
Set activexobj=CreateObject("WScript.Shell")
ExcelObj.Visible = true

ExcelObj.Workbooks.Open "D:\temp.xls"
ExcelObj.Worksheets("MEMBERS").Activate
ExcelObj.Worksheets("MEMBERS").UsedRange.Select
ExcelObj.Worksheets("MEMBERS").UsedRange.copy

ExcelObj.Worksheets("Sheet1").Activate
ExcelObj.Worksheets("Sheet1").Range("A1").Select
ExcelObj.Worksheets("Sheet1").Paste

Thank Narayanan very much!
Logged
Pages: [1]   Go Up
Print
Jump to: