excel vba 怎样能把计算结果输出到另一张表单中的某个位置?
比如,我通过宏在“计算”表单中得出了一个计算结果,我要把该结果的数值输出到“记录”表单中,应该怎样实现???现在用了个这个,但是好像无效记录是我要输入的表单,cells是...
比如,我通过宏在“计算”表单中得出了一个计算结果,我要把该结果的数值输出到“记录”表单中,应该怎样实现???
现在用了个这个,但是好像无效
记录是我要输入的表单,cells是计算那个表单里的数据
Sheets("记录").Range("s5").Value = Cells(ah, 34)
全都不行啊, 我把问题程序抓图贴在博客里了。
http://hi.baidu.com/kingston7410/blog/item/e0e424d78f7f3edaa044df24.html
我这个语句是在某个条件下执行的,我那个条件可以顺利执行的,因为把它删了其他都顺利。 展开
现在用了个这个,但是好像无效
记录是我要输入的表单,cells是计算那个表单里的数据
Sheets("记录").Range("s5").Value = Cells(ah, 34)
全都不行啊, 我把问题程序抓图贴在博客里了。
http://hi.baidu.com/kingston7410/blog/item/e0e424d78f7f3edaa044df24.html
我这个语句是在某个条件下执行的,我那个条件可以顺利执行的,因为把它删了其他都顺利。 展开
展开全部
Sheets("记录").Range("s5").Value = Cells(ah, 34)
改为:
Sheets("记录").Range("s5").Value2 = Cells(ah, 34).Value2
Cells()属于range类型不能赋值,必须后边加.value2 一般赋值取值都用value2不会出错。
sheets和worksheets都不需要定义
range类型可以用offset来自动调整位置,例如:
Sub test()
'
' test Macro
' 宏由 cnmhdzc 录制,时间: 2009-1-18
'
' 快捷键: Ctrl+y
'
Dim myrange1 As Range, myrange2 As Range '定义2个range类型
Dim i As Integer
Set myrange1 = Selection 'myrange1为当前选中单元格,
myrange1.Value2 = Cells(2, 2).Value2 '将第2行第2列单元格的值赋给选中的单元格。
Set myrange1 = Sheets("记录").Range("A1") '指定myrange1,myrange2的具体值
Set myrange2 = Sheets("记录").Range("B1")
For i = 0 To 40 '做40个循环查看效果
myrange1.Offset(i, 2).Value2 = myrange2.Offset(i, 0).Value2 '将myrange2对应的下i行右0列的值 赋给myrange1对应下i行右2列单元格
Next '实际上myrange1.Offset(i, 2).Value2 可以用cells(i,3).value2代替。
End Sub
改为:
Sheets("记录").Range("s5").Value2 = Cells(ah, 34).Value2
Cells()属于range类型不能赋值,必须后边加.value2 一般赋值取值都用value2不会出错。
sheets和worksheets都不需要定义
range类型可以用offset来自动调整位置,例如:
Sub test()
'
' test Macro
' 宏由 cnmhdzc 录制,时间: 2009-1-18
'
' 快捷键: Ctrl+y
'
Dim myrange1 As Range, myrange2 As Range '定义2个range类型
Dim i As Integer
Set myrange1 = Selection 'myrange1为当前选中单元格,
myrange1.Value2 = Cells(2, 2).Value2 '将第2行第2列单元格的值赋给选中的单元格。
Set myrange1 = Sheets("记录").Range("A1") '指定myrange1,myrange2的具体值
Set myrange2 = Sheets("记录").Range("B1")
For i = 0 To 40 '做40个循环查看效果
myrange1.Offset(i, 2).Value2 = myrange2.Offset(i, 0).Value2 '将myrange2对应的下i行右0列的值 赋给myrange1对应下i行右2列单元格
Next '实际上myrange1.Offset(i, 2).Value2 可以用cells(i,3).value2代替。
End Sub
展开全部
看了你的贴图,发现一个很奇怪的现象,不知是我孤陋寡闻还是真有问题。说出来仅供参考:
我用了这么多年,一直都是VB编辑器自动调整系统函数名的书写。比如Sheets,Worksheets,如果我写成全小写的,编辑器一定会改成首字母大写的。你的图里却出现了全小写的情况,似乎是系统没有把这两个函数识别出来。而其它的Cells,Range都是对的。
我觉得你的Excel本身有问题。你换台机器试试,看看能不能识别这两个函数,能不能过关。
我用了这么多年,一直都是VB编辑器自动调整系统函数名的书写。比如Sheets,Worksheets,如果我写成全小写的,编辑器一定会改成首字母大写的。你的图里却出现了全小写的情况,似乎是系统没有把这两个函数识别出来。而其它的Cells,Range都是对的。
我觉得你的Excel本身有问题。你换台机器试试,看看能不能识别这两个函数,能不能过关。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是可以的,确保你的行列ah, 34没有输错.
方便的话可以用hi发过来看看.
Sheets("记录").Range("s5").Value = Sheets("计算").Cells(ah, 34)
我把我的表名改成你的,试了下可以的.
方便的话可以用hi发过来看看.
Sheets("记录").Range("s5").Value = Sheets("计算").Cells(ah, 34)
我把我的表名改成你的,试了下可以的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Worksheets("交易记录").Cells(3, 3) = Worksheets("计算表").Cells(4, 2)
这样就可以了
前面要加work
这样就可以了
前面要加work
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询