大佬教程收集整理的这篇文章主要介绍了使用复制创建价目表,使用 VBA 粘贴,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个模板价目表,大约有 2600 行,根据这一列,您可以选择您想要的产品。 我想将这些行复制到新工作表中。 使用下面的代码,但做了一些它不应该做的事情。 有什么建议吗?
Private Sub CmdAdd_Click()
Dim rng As Range
Dim cel As Range
Set rng = Range("B8:B39")
For Each cel In rng
If cel.Value = "X" Then
cel.EntireRow.SELEct
Application.Cutcopymode = false
SELEction.copy DesTination:=Sheets("NewPriceList").Range("A" & Rows.Count).End(xlDown).offset(1,0)
End If
Next cel
End Sub
我认为您面临的问题是由于 xlDown。
你从rows.count(工作表结尾)开始向下......
如果我们制作 xlUp,那么代码会按预期将行复制到另一个工作表。 (如果这是预期的)
Private Sub CmdAdd_Click()
Dim rng As Range
Dim cel As Range
Set rng = Range("B8:B39")
For Each cel In rng
If cel.Value = "X" Then
'cel.EntireRow.SELEct
'Application.CutCopymode = false
cel.EntireRow.Copy DesTination:=Sheets("NewPricelist").Range("A" & Rows.Count).End(xlUp).offset(1,0)
End If
Next cel
End Sub
我还注释掉了 SELEct 以使代码更快
,我已经测试了您的代码,但从外观上看,您正在将行一直向下粘贴到工作表的底部。在第 1048576 行,然后覆盖这些值。
我认为您想将它们按顺序粘贴到工作表顶部?
Private Sub CmdAdd_Click()
Dim rng As Range
Dim cel As Range
Dim icount As Integer
Set rng = Range("B8:B39")
icount = 0
For Each cel In rng
If cel.Value = "X" Then
icount = icount + 1
cel.EntireRow.SELEct
Application.CutCopymode = false
SELEction.Copy
SELEction.Copy DesTination:=Sheets("NewPricelist").Range("A" & 0 + icount)
End If
Next cel
End Sub
以上是大佬教程为你收集整理的使用复制创建价目表,使用 VBA 粘贴全部内容,希望文章能够帮你解决使用复制创建价目表,使用 VBA 粘贴所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。