2017-01-02 7 views
0

Мне нужно добавить новую строку выше ячейки 1 в моей книге. Я напечатал ниже синтаксис, который я считаю, это правильно, но я получаю сообщение об ошибке из:Формат Excel из Access VBA

Объект не поддерживает это свойство или метод

Когда синтаксис попадает во второй строке моего with block - .Rows("1:1").Select

Что мне нужно изменить, чтобы этот синтаксис выполнялся как expeceted?

Function AdddFormatting() 
    Dim ExportRecordSet As DAO.Recordset 
    Dim excelWS As Object, excelWS2 As Object 
    Dim xl As Object 
    Dim wb As Object 
    Dim TemplateWB As String 

    Set xl = CreateObject("Excel.Application") 
    TemplateWB = "C:\Test\Testwb.xlsx" 
    Set wb = xl.Workbooks.Add 
    Set excelWS = wb.Worksheets(1) 
    excelWS.Name = "AddedFromCode" 
    Set excelWS2 = wb.Sheets.Add(After:=wb.Sheets(wb.Sheets.Count)) 
    excelWS2.Name = "AddedFromCode2" 
    xl.Application.Visible = True 

    With wb 
    .Sheets(1).Activate 
    .Rows("1:1").Select 
    'Using this syntax throws the same error 
    '.Rows(1).Select 
    .Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
    .Range("A1:H1").Select 
    .Selection.Merge 
    .ActiveCell.FormulaR1C1 = "This is the text that will display as the header" 
    .Range("A1:H1").Select.Font.Name = "Arial" 
    .Range("A1:H1").Select.Font.Size = 15 
    .Range("A1").Activate 
    End With 
End Function 

EDIT
Per комментарий разместил @ user2676140 я изменил мой with блок от with wb к with excelWS который теперь бросает ту же ошибку в строке 3 - это одно:

.Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
+0

Я думаю, что синтаксис на эта строка неверна ... .Rows (1). Выберите способ выбора полной строки. –

+0

. Дополнительную информацию можно найти по этой ссылке: http://www.excel-easy.com/vba/examples/entire-rows- columns.html –

+0

Если я изменю s yntax .Rows (1). Выберите, чтобы получить то же сообщение об ошибке. –

ответ

3

Этот синтаксис может def использовать некоторую очистку, но он должен приблизить вас к вашему желаемому результату. Опубликуйте комментарий с любыми проблемами, которые это все еще приносит вам, и я попытаюсь провести вас через исправление.

excelWS.Activate 
excelWS.Rows(1).Select 
xl.Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
excelWS.Range("A1:H1").Activate 
xl.Selection.Merge 
xl.ActiveCell.FormulaR1C1 = "This is the text that will display as the header" 
excelWS.Range("A1:H1").Activate 
xl.Selection.Font.Name = "Arial" 
xl.Selection.Font.Size = 15 
excelWS.Range("A1").Activate 

-> @ StarsFlyFree FromCozyNights < - только слиться A1: H1 попробуйте изменить эту строку:

excelWS.Range("A1:H1").Activate 

к этому ---->

excelWS.Range("A1:H1").Select 
+1

Я взял свободу и полностью удалил заявления «С», они только добавили «шум» в код. –

+0

Так близко к тому, что мне нужно. Это объединяет все строки 1 не только A1: H1 - вы можете исправить? –