Ветеран
Сообщения: 27449
Благодарности: 8087
|
Профиль
|
Отправить PM
| Цитировать
Pozia, пробуйте:
читать дальше »
Код: ![Выделить весь код](images/misc/selectcode.png)
Option Explicit
Sub CopyFromExcel()
Dim objExcel As Excel.Application
Dim strAddress As String
Dim strNewName As String
Dim i As Long
Set objExcel = GetObject(, "Excel.Application")
With objExcel.Selection
If .Worksheet.Type = Excel.xlWorksheet Then
i = .Worksheet.Names.Count + 1
Do
strNewName = "_" & CStr(i)
If Not NameExists(.Worksheet, strNewName) Then
Exit Do
Else
i = i + 1
End If
Loop
If Not RangeHasName(objExcel.Selection) Then
.Worksheet.Names.Add strNewName, "=" & .Address(, , Excel.xlR1C1, True)
End If
.Copy
Selection.PasteSpecial , True, , , wdPasteRTF
.Application.CutCopyMode = False
End If
End With
Set objExcel = Nothing
End Sub
Function NameExists(objWorksheet As Excel.Worksheet, strName As String) As Boolean
On Error Resume Next
NameExists = Len(objWorksheet.Names(strName).Name) <> 0
End Function
Function RangeHasName(objRange As Excel.Range) As Boolean
On Error Resume Next
RangeHasName = Len(objRange.Name.Name) <> 0
End Function
Цитата Pozia:
… при его наличие у клетки »
|
Будет работать с любыми диапазонами (не только состоящими из одной клетки).
|
Отправлено: 17:28, 25-01-2012
| #21
|