Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2154|回复: 2

关于带变量的复制表达式的正确写法

[复制链接]
发表于 2016-8-4 12:04 | 显示全部楼层 |阅读模式
本帖最后由 xcg757789162 于 2016-8-4 17:05 编辑

菜鸟新人,有一个简单的问题求助。谢谢各位大大

假设有一个整型变量x,我要把表格中a列x行到h列x行的数据,复制到另外一个表格的a列x行到h列x行,这个代码我该怎么写呢?


我写的部分代码如下, a是列名,i是变量,n是带复制的sheets名字

i = 3
n = "i" & i
   
   Do While "a" & i <> " "
        If "h" & i = "清镇" Then
            Sheets(1).["a"&i:"l"&i].Copy Sheets(n).["a"&i:"l"&i]
            i = i + 1
        Else
            Sheets(1).["a"&i:"l"&i].Copy Sheets("清镇市外").["a"&i:"l"&i]
            i = i + 1
       End If
    Loop

运行报错424,要求对象,我复制过程标红的表达式有问题,求问正确的表达式写法

----------------------------------------------------------------------------------------------------------
附上最终代码吧。学生花名册分类,供大家参考
Sub sort2()
    Dim i As Byte, n As String, a As Byte, b As Byte
   
    i = 3                       '行号记数
   
   Do While Len(Sheets(1).Range("a" & i)) <> 0
   
        n = Sheets(1).Range("i" & i).Value
        
        If Sheets(1).Range("h" & i).Value = "清镇" Then
            a = Sheets(n).[A65536].End(xlUp).Row
            Sheets(1).Range("a" & i & ":l" & i).Copy Sheets(n).Range("a" & (a + 1) & ":l" & (a + 1))
            i = i + 1
        Else
            b = Sheets("清镇市外").[A65536].End(xlUp).Row
            Sheets(1).Range("a" & i & ":l" & i).Copy Sheets("清镇市外").Range("a" & (b + 1) & ":l" & (b + 1))
            i = i + 1
       End If
    Loop
   
End Sub

发表于 2016-8-4 15:22 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-8-4 17:03 | 显示全部楼层
附上最终代码吧。学生花名册分类,供大家参考
Sub sort2()
    Dim i As Byte, n As String, a As Byte, b As Byte
   
    i = 3                       '行号记数
   
   Do While Len(Sheets(1).Range("a" & i)) <> 0
   
        n = Sheets(1).Range("i" & i).Value
        
        If Sheets(1).Range("h" & i).Value = "清镇" Then
            a = Sheets(n).[A65536].End(xlUp).Row
            Sheets(1).Range("a" & i & ":l" & i).Copy Sheets(n).Range("a" & (a + 1) & ":l" & (a + 1))
            i = i + 1
        Else
            b = Sheets("清镇市外").[A65536].End(xlUp).Row
            Sheets(1).Range("a" & i & ":l" & i).Copy Sheets("清镇市外").Range("a" & (b + 1) & ":l" & (b + 1))
            i = i + 1
       End If
    Loop
   
End Sub
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-28 08:31 , Processed in 0.156960 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表