Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата Pozia:
Выбираем Неформатированный текст, жмем Ок. Все. »
У меня как раз с этим проблема:
Цитата:
Не удается получить данные для связи Excel.Sheet.8
про которую я и писал выше.

читать дальше »
Была. Главное — правильно сформулировать запрос на английском языке. После этого была быстро найдена следующая статья базы знаний: Description of the Excel 2003 hotfix package: April 8, 2008, описывающая данную проблему буквально, а также дающая хотфикс для её устранения.


Pozia, попробуйте так:
Код: Выделить весь код
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 = 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
            
            .Worksheet.Names.Add strNewName, "=" & .Address(, , xlR1C1, True)
            .Copy
            
            Selection.PasteSpecial , True, , , wdPasteText
            
            .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
Основной макрос — «CopyFromExcel()». Также потребуется задать ссылку на «Microsoft Excel Object Library».
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:58, 23-01-2012 | #8