View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Chip Pearson Chip Pearson is offline
external usenet poster
 
Posts: 7,247
Default ActiveSheet.Name?

A better solution is

Sub CopySum()
Dim Arr As Variant
Dim N As Long
Dim MyDataObj As New DataObject
Dim str As String
Arr = Split(Selection.Address, ",")
For N = LBound(Arr) To UBound(Arr)
str = str & "," & Selection.Worksheet.Name & "!" & Arr(N)
Next N
str = Mid(str, 2)
MyDataObj.SetText "=sum(" & str & ")"
MyDataObj.PutInClipboard
End Sub



--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com


"Chip Pearson" wrote in message
...
Andrew,

Try the following:

Sub CopySum()
Dim MyDataObj As New DataObject
Dim str As String
str = Selection.Worksheet.Name & "!" & Selection.Address
MyDataObj.SetText "=sum(" & str & ")"
MyDataObj.PutInClipboard
End Sub


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com

"Andrew Stedman" wrote in message
...
Hi all,

I have the following macro that sums any cells that I select:

Sub CopySum()
Dim MyDataObj As New DataObject
Dim str As String

str = Selection.Address
MyDataObj.SetText "=sum(" & str & ")"
MyDataObj.PutInClipboard
End Sub

The macro works fine but I would like to be able to paste the

result into
another worksheet. At the moment if I say select cells A1 and

B1, the result
would be "=sum($A$1,$B$1)" when I hit paste. When I go to the

next worksheet
and paste, the resulting formula obviously doesnąt work as the

cell
references do not include the original sheet name.

Ive tried adding ActiveSheet.Name to the macro but I couldnąt

work out how
to add the sheet name before each cell I selected.

Any help greatly appreciated.

Andrew.