Hei
Alla oleva makro päivittää tiedot automaattisesti tietokannasta ja kopioi ne sitten uuteen ikkunaan. Ongelma on, että ActiveWorkbook.RefreshAll pitäisi suorittaa loppuun ennen kuin siirrytään eteenpäin.
ActiveSheet.QueryTables(1).Refresh BackgroundQuery:=False ei toimi, sillä en ole määritellyt QueryTables:ia. Vaihtoehtoja?
Sub Copy_Template_Data()
ActiveWorkbook.RefreshAll
Rows("1:1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
ActiveWindow.SplitRow = 1.1
ActiveWindow.SplitColumn = 2
Cells.Select
Cells.EntireColumn.AutoFit
ActiveWindow.SplitColumn = 1
ActiveWindow.SplitColumn = 1.3018018018018
ActiveWindow.SplitColumn = 2
ActiveWindow.Panes(3).Activate
Range("A3").Select
ActiveWindow.Panes(1).Activate
Cells.Select
Selection.AutoFilter
Cells.EntireColumn.AutoFit
Range("A1").Select
ActiveWindow.FreezePanes = True
End Sub
Alla oleva makro päivittää tiedot automaattisesti tietokannasta ja kopioi ne sitten uuteen ikkunaan. Ongelma on, että ActiveWorkbook.RefreshAll pitäisi suorittaa loppuun ennen kuin siirrytään eteenpäin.
ActiveSheet.QueryTables(1).Refresh BackgroundQuery:=False ei toimi, sillä en ole määritellyt QueryTables:ia. Vaihtoehtoja?
Sub Copy_Template_Data()
ActiveWorkbook.RefreshAll
Rows("1:1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
ActiveWindow.SplitRow = 1.1
ActiveWindow.SplitColumn = 2
Cells.Select
Cells.EntireColumn.AutoFit
ActiveWindow.SplitColumn = 1
ActiveWindow.SplitColumn = 1.3018018018018
ActiveWindow.SplitColumn = 2
ActiveWindow.Panes(3).Activate
Range("A3").Select
ActiveWindow.Panes(1).Activate
Cells.Select
Selection.AutoFilter
Cells.EntireColumn.AutoFit
Range("A1").Select
ActiveWindow.FreezePanes = True
End Sub
Vastaukset 2
Vanhimmat
Nyt pääsin hieman eteenpäin lisäämällä koodin ActiveSheet.Cells.ListObject.QueryTable.Refresh BackgroundQuery:=False heti ennen ActiveWorkbook.RefreshAll riviä. Mutta mutta... nyt ohjelma kysyy kaksi kertaa parametriä jonka mukaan tiedot pitäisi järjestää!
Korjaan hieman, eli ActiveWorkbook.RefreshAll täytyy tietenkin ottaa pois. Nyt makro toimii, mutta on todella hidas... ActiveSheet.Cells.ListObject.QueryTable.Refresh BackgroundQuery:=False ei huoli RefreshAll komentoa...