程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用复制创建价目表,使用 VBA 粘贴大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用复制创建价目表,使用 VBA 粘贴?

开发过程中遇到使用复制创建价目表,使用 VBA 粘贴的问题如何解决?下面主要结合日常开发的经验,给出你关于使用复制创建价目表,使用 VBA 粘贴的解决方法建议,希望对你解决使用复制创建价目表,使用 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,请注明来意。