아래 코드를 실행하고 가짜 결과를 얻습니다.VBA 복사 프로젝트에서 Excel로 데이터 붙여 넣기
어떤 이유로 MS 프로젝트 데이터 대신 원하는 코드에 5 줄의 코드를 복사합니다.
누구나 초보자를 도와 줄 수 있습니까? 코드의
다섯 줄은 잘못 Excel 워크 시트에 복사 :
'Open MS Project file
projApp.Application.FileOpenEx "C:File.mpp"
Set projApp = projApp.ActiveProject
'Final set up of code
Set projApp = Nothing
Sub OpenProjectCopyPasteData()
Dim appProj As MSProject.Application
Dim aProg As MSProject.Project
Dim sel As MSProject.Selection
Dim ts As Tasks
Dim t As Task
Dim rng As Range
Dim ws As Worksheet
Application.DisplayAlerts = False
'Clear current contents
Set ws = Worksheets("Project Data")
Set rng = ws.Range("A:J")
rng.ClearContents
On Error Resume Next
Set appProj = GetObject(, "MSProject.Application")
If appProj Is Nothing Then
Set appProj = New MSProject.Application
End If
appProj.Visible = True
'Open MS Project file
projApp.Application.FileOpenEx "C:File.mpp"
Set projApp = projApp.ActiveProject
'Final set up of code
Set projApp = Nothing
appProj.Visible = True
WindowActivate WindowName:=aProg
'Copy the project columns and paste into Excel
Set ts = aProg.Tasks
SelectTaskColumn Column:="Task Name"
OutlineShowAllTasks
OutlineShowAllTasks
EditCopy
Set ws = Worksheets("Project Data")
Set rng = ws.Range("A:A")
ActiveSheet.Paste Destination:=rng
SelectTaskColumn Column:="Task Name"
EditCopy
Set rng = ws.Range("B:B")
ActiveSheet.Paste Destination:=rng
SelectTaskColumn Column:="Resource Names"
EditCopy
Set rng = ws.Range("C:C")
ActiveSheet.Paste Destination:=rng
SelectTaskColumn Column:="Finish"
EditCopy
Set rng = ws.Range("D:D")
ActiveSheet.Paste Destination:=rng
Application.DisplayAlerts = True
appProj.DisplayAlerts = True
End Sub
왜도 너무 변수에'ActiveSheet'를 할당? ActiveSheet가 무엇인지 모르는 사이에 모호성을 줄이는 데 도움이됩니다. – BruceWayne
아래의 내 대답과 코드를 참조하십시오. –
@ShaiRado 대단히 감사합니다. 거대한 도움! – ERKSMTY