2013-11-25 5 views
2

일부 서버에서 데이터를 가져 오는 Excel 추가 기능을 사용하고 있습니다. 데이터를 가져오고 범위를 지정하고 형식을 지정하는 간단한 매크로를 작성합니다. 그러나 매크로는 서버에서 데이터를 가져 오지 않습니다. I 셀에 직접 수식을 입력하면 =RTD([Server IP Address],"ALLASSETTICKERINFO")Excel 용 VBA : 서버 데이터가 업데이트되지 않습니다.

데이터가 리턴되고 다음과 같이

수식이다. 이 매크로를 매크로에 사용하면 데이터가 업데이트되지 않습니다. 공식이 실행 된 후에 매크로 즉시 종료되면, 데이터가 갱신된다

Sub Update_Asset_Info() 

Range("A2").Select 

' this should be fetching data from a server. Instead it's returning a string "ALLASSETTICKERINFO" 
ActiveCell.FormulaR1C1 = "=RTD([Server IP Address],"ALLASSETTICKERINFO")" 

' these "resfresh and wait" operations don't seem to help 
Range("A2").Select 
Calculate 
Application.Wait (Now + TimeValue("0:00:03")) 


' data is fetched from server if the following code is omitted, but I can't omit it. 
Selection.Copy 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
Application.CutCopyMode = False 
Selection.TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, _ 
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ 
    Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _ 
    :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)), _ 
    TrailingMinusNumbers:=True 
End Sub 

유일한 방법이다. 매크로를 종료하기 전에 데이터 서식을 지정하려고하면 대신 서버에서 데이터를 가져 오지 않습니다. 오히려, 세포는 단지 "ALLASSETTICKERINFO"라고 말할 것입니다. 대기 및 새로 고침 명령을 입력하는 것조차 도움이되지 않습니다. 이 문제를 어떻게 해결할 생각인가요?

+0

어둠 속에서 촬영 : 수식을 입력 한 후'Application.RTD.RefreshData'를 시도 했습니까? –

답변

1

코드를 청소 한 후에는 다음과 같은 줄일 수있다 : 어떤 눈부신 문제가 있다고 생각하지 않는

Sub Clark_Update_Asset_Info() 

Dim MainCell As Range 
Set MainCell = ThisWorkbook.Sheets("Sheet1").Range("A2") 'Modify as necessary. 

Application.Calculation = xlCalculationManual 

With MainCell 
    .Formula = "=RTD([Server IP Address],""ALLASSETTICKERINFO"")" 
    .Copy 
    .PasteSpecial xlPasteValues 
    .TextToColumns Destination:=MainCell, DataType:=xlDelimited, Semicolon:=True 
End With 

With Application 
    .CutCopyMode = False 
    .Calculation = xlCalculationAutomatic 
End With 

End Sub 

질문에서 통합 문서의 사본에 위의 코드를 테스트하십시오. 그러나 오류가 발생할 수있는 많은 것들 중 일부는 .Selection.ActiveCell을 사용하고 .Formula 입력에 큰 따옴표를 사용하는 것을 잊었다는 것입니다.

도움이되는지 알려주세요.

편집 : 또한, this Microsoft Support nugget에 따라, 구문의 형식은 :

=RTD(RealTimeServerProgID,ServerName,Topic1,[Topic2], ...) 

이 당신이 필요로하는 관련 기능의 경우, 위를 기반으로 필요한 ProgID를, 서버 이름 및 항목 1을보고 있어요 조. 아마 이것도 오류에 기여할 수 있습니까? RTD로 전달되는 두 가지 사항 만 볼 수 있습니다.

+0

감사! 이 작품! 난 단지'Application.Calculation = xlCalculationManual'을'Application.Calculation = xlCalculationAutomatic'으로 변경해야했습니다. –

관련 문제