新足迹

 找回密码
 注册

精华好帖回顾

· 随笔三则 - 2012年夏令时的最后一天 (2012-3-31) astina · E&E -- 酱鸭 (2009-2-6) 闲夏采薇
· 关起门来教中文 (2019-1-10) lingjoy · 敦煌,我看看你~ (2005-5-11) simon
Advertisement
Advertisement
查看: 4003|回复: 13

[IT] Excel VBA 的问题,请大虾们帮助 [复制链接]

发表于 2015-5-8 10:14 |显示全部楼层
此文章由 KXYS 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 KXYS 所有!转贴必须注明作者、出处和本声明,并保持内容完整
简单的编了了一个VBA想把符合条件Sales的data自动copy到另外一个sheet里面,做成sales order的形式。可是到了下面的语句就总是出错,请足迹的高手们帮助。谢谢先!!!

Dim Order As String, i As Long, Lastrow As Long, Response As Integer, RowOrder As Long

If .Cells(i, 11).Value = Order Then
     
  Worksheets("Order").Range(Cells(RowOrder, 1), Cells(RowOrder, 7)).Value = Worksheets("Sales Data").Range(Cells(i, 4), Cells(i, 10)).Value

系统错误显示如下:

Run-time error ‘1004’:

Application-defined or object-defined error

再次谢谢!!
Advertisement
Advertisement

发表于 2015-5-8 18:29 |显示全部楼层
此文章由 healthyz 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 healthyz 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Cell前面是不是要加个.  ?

你的 If 那句有.

发表于 2015-5-8 18:41 |显示全部楼层
此文章由 原来 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 原来 所有!转贴必须注明作者、出处和本声明,并保持内容完整
If  Worksheets("Order").Cells(i, 11).Value = Order Then

发表于 2015-5-8 23:00 |显示全部楼层
此文章由 KXYS 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 KXYS 所有!转贴必须注明作者、出处和本声明,并保持内容完整
healthyz 发表于 2015-5-8 17:29
Cell前面是不是要加个.  ?

你的 If 那句有.

谢谢,还是不行啊。应该是整句的语法有问题,网上大多用的是字母表示的语句。

发表于 2015-5-8 23:06 |显示全部楼层
此文章由 KXYS 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 KXYS 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原来 发表于 2015-5-8 17:41
If  Worksheets("Order").Cells(i, 11).Value = Order Then

谢谢, 还是不行。貌似只有一句不行,怀疑是语法问题。

发表于 2015-5-9 18:57 |显示全部楼层
此文章由 euroblue 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 euroblue 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 euroblue 于 2015-5-9 18:28 编辑

    If Worksheets("Sales Data").Cells(i, 11).Value = Order Then
   
        Worksheets("Sales Data").Range("D" & i & ":J" & i).Copy
  
        Worksheets("Order").Range("A" & RowOrder).PasteSpecial xlPasteAll

        RowOrder = RowOrder + 1
    End If

评分

参与人数 1积分 +4 收起 理由
KXYS + 4 谢谢,我试试。

查看全部评分

A is A
Advertisement
Advertisement

发表于 2015-5-9 19:46 |显示全部楼层
此文章由 paramita 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 paramita 所有!转贴必须注明作者、出处和本声明,并保持内容完整
一个range的value不能直接赋值到另一个range,没这个功能,所以出错。楼上copy paste可行,如果只要value,不用xlpasteall, 用paste values only.

评分

参与人数 1积分 +4 收起 理由
KXYS + 4 你太有才了

查看全部评分

发表于 2015-5-9 21:04 |显示全部楼层
此文章由 KXYS 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 KXYS 所有!转贴必须注明作者、出处和本声明,并保持内容完整
euroblue 发表于 2015-5-9 17:57
If Worksheets("Sales Data").Cells(i, 11).Value = Order Then
   
        Worksheets("Sales Data" ...

谢谢了。不过,还是不行。

Run 到第三句

Worksheets("Order").Range("A" & RowOrder).PasteSpecial xlPasteAll

显示错误

Run-time error '9':
Subscript out of range

再次谢谢。

发表于 2015-5-9 22:04 |显示全部楼层
此文章由 euroblue 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 euroblue 所有!转贴必须注明作者、出处和本声明,并保持内容完整
KXYS 发表于 2015-5-9 20:04
谢谢了。不过,还是不行。

Run 到第三句


有没有 set RowOrder?
A is A

发表于 2015-5-9 22:26 |显示全部楼层
此文章由 等于三 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 等于三 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你第一个Oder没打引号。

发表于 2015-5-9 22:56 |显示全部楼层
此文章由 KXYS 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 KXYS 所有!转贴必须注明作者、出处和本声明,并保持内容完整
euroblue 发表于 2015-5-9 21:04
有没有 set RowOrder?

我 已经

dim order as long

order=15

谢谢。
Advertisement
Advertisement

发表于 2015-5-9 22:57 |显示全部楼层
此文章由 KXYS 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 KXYS 所有!转贴必须注明作者、出处和本声明,并保持内容完整
等于三 发表于 2015-5-9 21:26
你第一个Oder没打引号。

第一个应该不用把,是value。

发表于 2015-5-9 23:21 |显示全部楼层
此文章由 euroblue 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 euroblue 所有!转贴必须注明作者、出处和本声明,并保持内容完整
KXYS 发表于 2015-5-9 21:56
我 已经

dim order as long

RowOrder = 15 ?

===========

Dim Order As String, i As Long, Lastrow As Long, Response As Integer, RowOrder As Long

Order = 100
RowOrder = 15

For i = 1 To 10

    If Worksheets("Sales Data").Cells(i, 11).Value = Order Then
   
        Worksheets("Sales Data").Range("D" & i & ":J" & i).Copy  
        Worksheets("Order").Range("A" & RowOrder).PasteSpecial xlPasteValues
        RowOrder = RowOrder + 1
    End If

Next i
A is A

发表于 2015-5-12 08:47 来自手机 |显示全部楼层
此文章由 KXYS 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 KXYS 所有!转贴必须注明作者、出处和本声明,并保持内容完整
euroblue 发表于 2015-5-9 22:21
RowOrder = 15 ?

===========

还是不行啊,我把我的表上传一下稍后。

发表回复

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

本版积分规则

Advertisement
Advertisement
返回顶部