vba 错误 要求对象
SubLastRow()Fori=1To38Worksheets("bayujiaozi").Cells(i,"A").Value=Sheet1.Cells(i*8,"G...
Sub LastRow()
For i = 1 To 38
Worksheets("bayujiaozi").Cells(i, "A").Value = Sheet1.Cells(i * 8, "G").Value
Next i
End Sub
原理很简单 就是把第一个sheet里 G列 的第8行以后每隔8行的数据取出来重新生成1列放在另一个新生成的sheet里。但是这个代码报错啊 展开
For i = 1 To 38
Worksheets("bayujiaozi").Cells(i, "A").Value = Sheet1.Cells(i * 8, "G").Value
Next i
End Sub
原理很简单 就是把第一个sheet里 G列 的第8行以后每隔8行的数据取出来重新生成1列放在另一个新生成的sheet里。但是这个代码报错啊 展开
展开全部
你的这段代码是没有错的;
但是
你的代码要放在 sheet名字为“bayujiaozi” 中,且这个表是你放内容的表,
而你要复制的内容应该在Sheet1中,注意,这个Sheet1是表对象,不是表的名称;表的名称是可以重命名的,而这个Sheet1是不能改的,
Sub LastRow()
For i = 1 To 38
Worksheets("bayujiaozi").Cells(i, "A").Value = Sheet2.Cells(i * 8, "G").Value
Next i
End Sub
但是
你的代码要放在 sheet名字为“bayujiaozi” 中,且这个表是你放内容的表,
而你要复制的内容应该在Sheet1中,注意,这个Sheet1是表对象,不是表的名称;表的名称是可以重命名的,而这个Sheet1是不能改的,
Sub LastRow()
For i = 1 To 38
Worksheets("bayujiaozi").Cells(i, "A").Value = Sheet2.Cells(i * 8, "G").Value
Next i
End Sub
展开全部
for i = 1 to 38
sheets("bayujiaozi").cells(i,1)=sheet1.cells(i*8,7)
next i
你要确定你后面的那个sheet1 在vba的属性那里是sheet1
而不是excel下方那里写的sheet1
实在不行你就都用sheets("...") 这样就不会出错了
sheets("bayujiaozi").cells(i,1)=sheet1.cells(i*8,7)
next i
你要确定你后面的那个sheet1 在vba的属性那里是sheet1
而不是excel下方那里写的sheet1
实在不行你就都用sheets("...") 这样就不会出错了
追问
下表越界了
追答
你把表发过来 我给你看看
howcanilose@sina.com
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很明显这句话有问题
Sheet1.Cells(i * 8, "G").Value
正确用法:
Sheets("Sheet1").Cells(i * 8, "G").Value
说明:
Sheets:指定工作簿或当前活动工作簿中所有工作表的集合。Sheets 集合可包含 Chart 对象或Worksheet 对象。
Worksheets:指定工作簿中或活动工作簿中所有Worksheet 对象的集合。每个 Worksheet 对象代表一张工作表。
Worksheet 对象也是Sheets 集合的成员。Sheets 集合包含工作簿中所有的工作表(包括图表工作表和工作表)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sheet1改写成oWb.Worksheets(1)
owb是workbook对象
owb是workbook对象
更多追问追答
追问
Worksheets("bayujiaozi").Cells(i, "A").Value = oWb.Worksheets(1).Cells(i * 8, "G").Value
改成这样 还是报错 运行时错误 424 要求对象
追答
哦,改写成
Worksheets(1).Cells(i * 8, "G").Value
试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询