2017-07-18 20 views
-1

我目前遇到一個問題,即在更改文件夾位置後,我的宏不同步。我有一個宏將excel信息複製到word文檔模板。當它們在我的C:\驅動器中時,它運行平穩無誤。現在我想將它移動到公共服務器上,以便我的同事也可以使用它,當我這樣做時,一些曾經完美工作的宏會被1或2個空格偏移,甚至不會將信息放在正確的位置。當我將文檔傳回到我的C:\驅動器時,它們再次完美地工作。我很困惑什麼問題是如此,如果你們中的任何人都可以提供幫助,我將不勝感激。謝謝。宏移動到不同的文件夾時無法正常工作

Sub GageTest2() 

Dim objWord As Object 
Dim objDoc As Object 
Dim i As Integer 
Dim Rng As Range 
Dim NumRows As Integer 

Set objWord = CreateObject("Word.Application") 
objWord.Visible = True 
Set objDoc = objWord.Documents.Open("P:\New Gage Lab Process\Gage Lab Form Template.docm") 
'This opens Template 

Dim StrValue As String 

For i = 2 To 6 
'This populates the Gage ID 

objDoc.Activate 

StrValue = Cells(i + 1, 1) 

objWord.Selection.MoveDown 
objWord.Selection.TypeText Text:=StrValue 

    If StrValue = "" Then 
    Exit For 

    End If 
Next i 

For i = 2 To 6 
'This populates the Gage Type 
    objDoc.Activate 

Set Rng = Range("A3:A7") 
NumRows = Application.WorksheetFunction.CountA(Rng) 

StrValue = Cells(i + 1, 3) 

If NumRows = 5 Then 
    objWord.Selection.MoveDown count:=5 
    objWord.Selection.TypeText Text:=StrValue 
    objWord.Selection.MoveDown count:=-4 
Else 
'Do Nothing 
End If 

If NumRows = 4 Then 
    objWord.Selection.MoveDown count:=5 
    objWord.Selection.TypeText Text:=StrValue 
    objWord.Selection.MoveDown count:=-4 
Else 
'Do Nothing 
End If 

If NumRows = 3 Then 
    objWord.Selection.MoveDown count:=6 
    objWord.Selection.TypeText Text:=StrValue 
    objWord.Selection.MoveDown count:=-5 
Else 
'Do Nothing 
End If 

If NumRows = 2 Then 
    objWord.Selection.MoveDown count:=7 
    objWord.Selection.TypeText Text:=StrValue 
    objWord.Selection.MoveDown count:=-6 
Else 
'Do Nothing 
End If 

If NumRows = 1 Then 
    objWord.Selection.MoveDown count:=8 
    objWord.Selection.TypeText Text:=StrValue 
    objWord.Selection.MoveDown count:=-7 
Else 
'Do Nothing 
End If 

    If StrValue = "" Then 
    Exit For 

End If 

Next i 
End Sub 
+2

請提供代碼,以幫助確定問題。 – Cyril

+0

我認爲問題是你的代碼林17 ;-) – Jochen

+0

哎呀,對不起,忘了添加我的代碼。 – Jmaragno

回答

0

沒有你正在使用的文件我會建議一個錯誤,如果你檢查sting是否爲空或在行的計數功能。

對於if語句,你可以嘗試這樣的事情。

If StrValue = "" or StrValue = vbNullString Then 
    Exit For 
End If 

或有在計數法的錯誤,你可以嘗試使用

NumRows = Application.WorksheetFunction.Count(Rng) 

希望這將有助於

+1

謝謝你答案很奇怪,我只是把它放在Q:\中,它最終工作正常。不知道P:\有什麼問題,但再次感謝您的幫助! – Jmaragno

相關問題