VBA程序出现sub或者function未定义

Subtest()DimI,j,KAsLongDima,bAsStringDimuseSheetAsExcel.WorksheetSetuseSheet=ThisWork... Sub test()
Dim I, j, K As Long
Dim a, b As String
Dim useSheet As Excel.Worksheet
Set useSheet = ThisWorkbook.Worksheets("Sheet1")

a = useSheet.Cells(1, 1).Value
b = Trim(Right(Substitute(a, "_", Rept(" ", Len(a))), Len(a)))

End Sub

会提示sub或者function未定义

但是如果我把b=Trim(Right(Substitute(a, "_", Rept(" ", Len(a))), Len(a)))删除就可以正常运行

为什么?
展开
 我来答
hlhcygs
推荐于2018-03-07 · TA获得超过3174个赞
知道大有可为答主
回答量:2987
采纳率:66%
帮助的人:1931万
展开全部

SUBSTITUTE和rept是工作表函数,需要用WORKSHEETFUNCTION来调用。

Sub test()
 Dim I, j, K As Long
 Dim a, b As String
 Dim useSheet As Excel.Worksheet
 Set useSheet = ThisWorkbook.Worksheets("Sheet1")

a = useSheet.Cells(1, 1).Value
b = Trim(Right(Application.WorksheetFunction.Substitute(a, "_", Application.WorksheetFunction.Rept(" ", Len(a))), Len(a)))

End Sub
阳光上的桥
2016-11-08 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65810
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
Substitute错了,应该修改为replace
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
coolbi5
2016-11-08 · TA获得超过1万个赞
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:2428万
展开全部
Substitute 换成 Application.Substitute 看看可以不
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式