excel sheet1 如何调用sheet2 vba代码
我在sheet1vba里写了一段代码subt1callt2range("a1").value=sheets(2).range("a1").valueendsubsheet...
我在sheet1 vba里 写了一段代码
sub t1
call t2
range("a1").value=sheets(2).range("a1").value
end sub
sheet2里写了一段代码
sub t2
range("a1").value="=rand()"
end sub
然后在sheet1里 插入一个控件 指定宏为sheet1里的代码 但是调用不了sheet2里的宏 是不是跨工作表之间不能互相调用? 那我应该怎么做?
执行后提示 错误 400
Columns("A:B").Select
ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Add Key:=Range("B1:B10") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet2").Sort
.SetRange Range("A1:B10")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With 展开
sub t1
call t2
range("a1").value=sheets(2).range("a1").value
end sub
sheet2里写了一段代码
sub t2
range("a1").value="=rand()"
end sub
然后在sheet1里 插入一个控件 指定宏为sheet1里的代码 但是调用不了sheet2里的宏 是不是跨工作表之间不能互相调用? 那我应该怎么做?
执行后提示 错误 400
Columns("A:B").Select
ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Add Key:=Range("B1:B10") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet2").Sort
.SetRange Range("A1:B10")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With 展开
2个回答
展开全部
Sub t1()
Sheet2.t2
End Sub
但是注意,由于t2程序中未指定是哪张Sheet,虽然是在Sheet1中调用,但由于t2在Sheet2中,所以缺省仍指向Sheet2,程序会对Sheet2中的A1单元格赋值
Sheet2.t2
End Sub
但是注意,由于t2程序中未指定是哪张Sheet,虽然是在Sheet1中调用,但由于t2在Sheet2中,所以缺省仍指向Sheet2,程序会对Sheet2中的A1单元格赋值
追问
我按你说的试了一下 还是不行
提示 错误1004
我发现好像sheet2里的宏前半段执行了 后半段 排序的代码没执行
没有执行的后半段代码 我放在 问题补充里面了 你看看 独立在sheet2里运行没问题 就是不能再sheet1里调用
追答
跨表调用,最好所有的对象都要指定Sheet。
另外,你的程序中有Select方法,如果在另一个表中调用必须先activate.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询