2016-04-13 77 views
-1

'pm' ile bir cümle için bir belgede görünen aşağıdaki koda sahibiz - eğer bulunursa değeriyle değiştirir bir ana belge tablosu 2'dir hücreler 2,2.TABLO HÜCRE DEĞERİ = .... SONRA (çalışmayan)

Bazı nedenlerle IF bildirimi çalışmıyor ve her zaman belgeye yazıyı değiştirmemek yerine ELSE'ye gider - bana sabahtan beri sıkışmış olduğum gibi yardım edebilir.

timeon = wdDocSrc.Tables(2).Cell(2, 2).Range.Text 
If timeon = "a" Then 'ERROR HERE 
TimeReplace = wdDocSrc.Tables(2).Cell(3, 1) 

TimeText = TimeReplace 

wdDocTgt.Activate 

With wdDocTgt 
Selection.Find.Execute FindText:="pm", Forward:=True 

If Selection.Text = "pm" Then 
With Selection 
' Collapse current selection to insertion point. 
.Collapse 
' Turn extend mode on. 
.Extend 
' Extend selection to word. 
.Extend 
' Extend selection to sentence. 
.Extend 
End With 
With Selection 
    'Selection.Text = "We are now open Christmas DAY!!. " 
    Selection.Text = TimeText 

End With 

Else 
MsgBox "No timing in this letter" 
End If 
End With 
Else 
MsgBox "ERROR" 'AWAYS JUMPS TO THIS 
End If 
+0

Eğer 'timeon' bir o noktaya ne içerdiğini kontrol edilemiyor? – GSerg

+0

Timeon, belirtilen hücrede (hemen pencereyi kontrol ederken) değeri içerir. Yanında siyah bir daire var - bu onu etkiler mi ve eğer öyleyse onu masadan nasıl kaldırabilirim? – Tom36

+0

Bu, bir satır sonu ve ardından tablo hücresi sonlandırıcı karakteridir. Karşılaştırmadan önce bunları kaldırmak isteyebilirsiniz. – GSerg

cevap

0

siyah çalışma yaptı mı Çıkarma - bu kodu kullanarak:

timeon = wdDocSrc.Tables(3).Cell(2, 2) 
Timeconfig = timeon 
Timeconfig = Left$(Timeconfig, Len(Timeconfig) - 2) 
If Timeconfig = "Yes" Then 
TimeReplace = wdDocSrc.Tables(2).Cell(2, 1) 

TimeText = TimeReplace 
İlgili konular