美好的一天,
我已经看过许多不同的问题/答案,但所有这些都与我的略有不同,它让我发疯,因为我无法弄明白。请在下面找到问题:
在workheet1('add')中有一个A4到Z14的表。它用于显示具有不同端口的船舶的航行并自动计算时间和日期。我想把这张桌子(这个特定的航程)复制到另一张工作表2('时间表'),并附上船只的完整行程。要做到这一点,我必须将范围复制到vba中的剪贴板(我用它运行一些其他的宏,但解释变得有些复杂)。
我的问题:我想只复制包含portcalls的范围。端口以colunm C输入,因此范围为C4至C14。因此,如果航程中只有三个端口,则C4到C6包含端口名称,而C7到C14为空或0.复制的范围应为A4:Z6。如果有五个端口,则范围应为A4:Z8。
期待回复并提前多多感谢!如果能为我澄清这一点,你会大大帮助我。
理查德
因为对于某些单元格需要复制公式,并且对于某些单元格(来自一般输入表单),我首先插入完整范围,然后复制范围内的值/粘贴值以断开链接使用一般输入表
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的粘贴值:J14,M5:R14,T5:T14,AB5:AG14
范围的行数应取决于lastrow,其值在C4范围内:C14
答案 0 :(得分:0)
您可能需要更改在Schedule表中粘贴的位置,因为我不知道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