Ciao a tutti. Ho un problema nel creare i bordi attorno ad un intervallo di celle tramite vba.
Ho eliminato tutto il codice superfluo relativo a recordset eccetera per renderlo più facilmente testabile da qualche anima pia.![]()
Tale codice funziona soltanto se excel viene chiuso. Se infatti provo a ricliccare il pulsante dopo che il file è già stato generato ottengo l'errore runtime '1004' impossibile impostare la proprietà LineStyle per la classe Border in corrispondenza della riga evidenziata in rosso. Ovviamente se commento quella porzione di codice l'errore semplicemente si trasferisce alla porzione di codice seguente.codice:Private Sub Comando0_Click() Dim dbs As Database Dim strSQL As String Dim strQueryName As String Dim qryDef As QueryDef Dim xlApp As Excel.Application Dim xlSheet As Excel.Worksheet Dim xlWorkbook As Excel.Workbook Dim objRST As Recordset Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True Set xlWorkbook = xlApp.Workbooks.Add Set xlSheet = xlWorkbook.Sheets(1) With xlSheet .Range("A2").Value = "testo" .Range("C2").Value = "testo" .Range("E5").Value = "testo" End With 'metodo per trovare l'ultima riga compilata di un foglio 'LastRow = ActiveSheet.UsedRange.Rows.Count 'MsgBox (xlSheet.UsedRange.Rows.Count) xlSheet.Range("A2:E5").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Set xlSheet = Nothing Set xlWorkbook = Nothing Set xlApp = Nothing End Sub
Sapreste dirmi come devo modificare la sintassi per rendere il codice sempre funzionante?
Ciao e grazie come sempre.![]()

Rispondi quotando
VVoVe:

