excel vba 至少一个参数没有被指定值

Sub统计1()''统计1MacroDimcnAsADODB.ConnectionDimrsAsADODB.RecordsetDimsql$,x$Setcn=NewADO... Sub 统计1()
'
' 统计1 Macro
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sql$, x$
Set cn = New ADODB.Connection
Set sr = New ADODB.Recordset
cn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=yes'; " _
& "data source=" & ThisWorkbook.Path & "\成本项目汇总表.xls"
x = ActiveWorkbook.Worksheets("sheet1").[K1].Value
sql = "select 年月,科室代码,科室名称,成本项目名称,金额 from [sheet1$]"
sql = sql + "where 科室代码 like '" & x & "'"
sql = sql + "group by 年月,科室代码,科室名称,成本项目名称,金额;"

Set rs = cn.Execute(sql)
For i = 1 To rs.fields.Count
Sheet1.Cells(4, i) = rs.fields(i - 1).Name
Next i
Sheet1.[5:300].ClearContents
Sheet1.[a5].CopyFromRecordset rs
cn.Close
Set cn = Nothing
cn.Close
Set cn = Nothing
End Sub
运行至 Set rs = cn.Execute(sql) 时会提示错误:至少一个参数没有被指定值 请指导一下
展开
 我来答
Excel小奇
2015-10-26 · 知道合伙人软件行家
Excel小奇
知道合伙人软件行家
采纳数:902 获赞数:6175
EXCEL图书作者,Microsoft 认证Excel专家。

向TA提问 私信TA
展开全部
1、报错原因:在VBA中,使用了函数,且函数的参数指定错误。
2、VBA函数和工作表函数类似,其参数分两类,一类是必须的一类是可选的,前者是不可省略的,如被省略或指定错误,则会报错,提示为“至少一个参数没有被指定值”。
3、解决办法:检查报错相应的代码,补其相应函数所需要的参数。
njz2j
推荐于2016-06-04 · TA获得超过2607个赞
知道小有建树答主
回答量:1287
采纳率:100%
帮助的人:891万
展开全部
sql = "select 年月,科室代码,科室名称,成本项目名称,金额 from [sheet1$]"
sql = sql + "where 科室代码 like '" & x & "'"
sql = sql + "group by 年月,科室代码,科室名称,成本项目名称,金额;"

改为
sql = "select 年月,科室代码,科室名称,成本项目名称,金额 from [sheet1$]"+“ ”
sql = sql + "where 科室代码 like “ ” & x & “ ”
sql = sql + "group by 年月,科室代码,科室名称,成本项目名称,金额"
试试
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chennwau
2013-10-15 · TA获得超过738个赞
知道小有建树答主
回答量:516
采纳率:0%
帮助的人:428万
展开全部
注意SQL语句中的空格,比如你的[sheet1$]后面好象就少一个空格。
你可以在调试状态下将SQL输出出来,看一下哪个地方出错了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式