2015-01-05 25 views
0

好日子,條件複印(非空文本字段)與可變範圍

我已經看了看周圍很多不同的問題/答案的,可是比我稍微不同,它驅使我瘋了,因爲我只是不能圖出來。請在下面找到問題:

在worksheet1('add')中有一個A4到Z14的表格。它用於顯示不同港口的船舶航行並自動計算時間和日期。我想把這張表格(這個特定的航程)複製到另一張工作表2(「時間表」),並附上船隻的完整行程表。要做到這一點,我必須將範圍複製到VBA剪貼板(我運行一些其他的宏,但解釋變得有些複雜)。

我的問題:我想只複製包含portcalls的範圍。端口以列C的形式輸入,因此範圍爲C4至C14。因此,如果航程中只有三個端口,則C4至C6包含端口名稱,C7至C14爲空或0.複製的範圍應爲A4:Z6。如果有五個端口,範圍應該是A4:Z8。

期待一個回覆,並已提前多謝!如果這能爲我澄清,你會大大幫助我。

僑理查德

由於對於某些細胞中的公式需要被複制,並且對於一些只的值(即來自一般輸入板),我首先插入完整的範圍,然後複製的/ pastedvalues範圍在它打破鏈路與通用輸入片

Dim myC As Range 
Set myC = ActiveCell 
Application.CutCopyMode = False 
      'insert 
Sheets("Add").Select 
Rows("5:14").Select 
Selection.COPY 
Sheets("Schedule").Select 
myC.Select 
ActiveCell.Offset(1, 0).Select 
Selection.Insert Shift:=xlDown 
Application.CutCopyMode = False 

'paste values voy#/ports    
Sheets("Add").Select 
Application.CutCopyMode = False 
Range("B5:C14").Select 
Selection.COPY 
Sheets("Schedule").Select 
myC.Select 
ActiveCell.Offset(1, 1).Select 
Selection.PasteSpecial Paste:=xlPasteValues,Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
Application.CutCopyMode = False 

- >重複爲範圍E5 pastevalues:J14,M5:R14,T5:T14,AB5:AG14

的行數範圍應該取決於拉斯特羅在其中的價值範圍C4:C14

+1

請分享您迄今爲止工作過的代碼。 –

+0

請在修改後的問題中找到代碼 – Richard

回答

0

您可能需要更改粘貼到計劃表中的位置,因爲我不知道ActiveCell在哪裏......但這應該可以完成這項工作。

Dim lngRowSearch As Long 
lngRowSearch = 3 
With Sheets("Add") 
    Do 
     lngRowSearch = lngRowSearch + 1 
    Loop Until .Cells(lngRowSearch + 1, 3) = 0 
    .Range("A4:Z" & lngRowSearch).Copy 
End With 
Sheets("Schedule").Cells(1, 1).PasteSpecial xlPasteValues 
+0

太棒了!非常感謝!我設法適應了它,沒有太多麻煩,並且它按照我的希望工作。 – Richard