| 查看: 2794 | 回复: 12 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[求助]
求急救:VBA中range对单元格不能依次读取数据,提示:“作用于对象Globle时失败”
|
|||
|
Excel中用VBA写了一段, 程序代码如下(省略了一部分) startcol = 1 endcol = startcol + XMS - 1 If startcol \ 26 > 0 Then x1 = Chr(Asc("A" + startcol \ 26 - 1)Else: x1 = "" End If x2 = Chr(Asc("A" + startcolMod26 - 1)If endcol \ 26 > 0 Then x3 = Chr(Asc("A" + endcol \ 26 - 1)Else: x3 = "" End If x4 = Chr(Asc("A" + endcolMod26 - 1)Set r = Range(x1 & x2 & i & ":" & x3 & x4 & i) 在执行时出现提示:“作用于对象Globle时失败” 在网上搜索,有个类似的,但也没能解决。 请教各位达人! 救急!谢谢! |
» 本帖已获得的红花(最新10朵)
» 猜你喜欢
求合成方法
已经有6人回复
有机合成以后会不会被AI改变?做科研的虫友怎么看
已经有6人回复
上海工程技术大学 激光智能制造课题组 2027级博士研究生招生
已经有4人回复
现代”学阀”该如何界定
已经有12人回复
国社科系统bug了,是不是要放榜了?
已经有10人回复
课题组招2027级博士 上海工程技术大学 激光智能制造方向
已经有4人回复
我的奶奶
已经有3人回复
送红花一朵 |
感谢各位达人回答, 现在遇到的问题有两个: 1.'循环语句Set r = Range(x1 & x2 & i & ":" & x3 & x4 & i)总是无法执行,提示“作用于对象Globle时失败”,而语句'Set r = Range(i & ":" & i)仅能执行当前行 2.怎样让程序自动点击“确定保存”,就是能自动上传并保存全部数据到网页? 我这边的完整代码如下:【参考一篇文献来的,但验证时发现文献中有错误,修改了下;百度了下,网上有类似的疑问,但给出的解答不能解决问题】 Public mWindow As Object Public mDocument As Object Public STOPRUN As Integer Public Const XMS As Integer = 4 Public xm As String '姓名 Public xb As Integer '性别 Public nl As Integer '年龄 Public zc As Integer '职称类别 Public Sub mComGetIEWindows(ByVal IETitle As String, Optional ByVal WaitTime As Integer = 0) Dim mshellWindow As New SHDocVw.ShellWindows Dim mIndex As Long For mIndex = 0 To mshellWindow.Count - 1 If VBA.TypeName(mshellWindow.Item(mIndex).document) = "HTMLDocument" Then If mshellWindow.Item(mIndex).document.Title = IETitle Then If WaitTime = 1 Then Do While mshellWindow.Item(mIndex).Busy Application.Wait (Now + TimeValue("0:00:01" )DoEvents Loop End If Set mDocument = mshellWindow.Item(mIndex).document Set mWindow = mshellWindow.Item(mIndex) mshellWindow.Item(mIndex).Visible = True Exit Sub End If End If Next mIndex End Sub Public Sub GetDataAutoInputContext() Dim i As Integer Dim r As Range Dim x1 As String, x2 As String Dim x3 As String, x4 As String Dim startcol As Integer, endcol As Integer If Selection Is Nothing Then MsgBox "请先选中处理行", vbOKOnly, "错误" STOPRUN = 1 Exit Sub End If i = Selection.Row If i < 2 Then MsgBox "不可处理第一行", vbOKOnly, "错误" STOPRUN = 1 Exit Sub End If startcol = 1 endcol = startcol + XMS - 1 If startcol \ 26 > 0 Then x1 = Chr(Asc("A" + startcol \ 26 - 1)Else: x1 = "" End If x2 = Chr(Asc("A" + startcolMod26 - 1)If endcol \ 26 > 0 Then x3 = Chr(Asc("A" + endcol \ 26 - 1)Else: x3 = "" End If x4 = Chr(Asc("A" + endcolMod26 - 1)Set r = Range(x1 & x2 & i & ":" & x3 & x4 & i) '循环语句Set r = Range(x1 & x2 & i & ":" & x3 & x4 & i)总是无法执行,提示“作用于对象Globle时失败”,而语句'Set r = Range(i & ":" & i)仅能执行当前行 For i = 1 To XMS Step 1 Select Case i Case 1 xm = Trim(r.Cells(1, i).Value) '姓名 Case 2 nl = r.Cells(1, i).Value '年龄 Case 3 If Trim(r.Cells(1, i).Value) = "男" Then xb = 1 ElseIf Trim(r.Cells(1, i).Value) = "女" Then xb = 2 Else MsgBox "性别字段错误", vbOKOnly, "错误" STOPRUN = 1 Exit Sub End If Case 4 Select Case Trim(r.Cells(1, i).Value) Case "初级" zc = 1 Case "中级" zc = 2 Case "高级" zc = 3 Case Else MsgBox "职称字段错误", vbOKOnly, "错误" STOPRUN = 1 Exit Sub End Select End Select Next i End Sub Public Sub AutoInputContext() STOPRUN = 0 Call GetData If STOPRUN = 1 Then Exit Sub End If mComGetIEWindows ("测试文档" ![]() If mDocument Is Nothing Then MsgBox "没有找到指定的窗必须先打开才可以自动填表", vbOKOnly, "错误" Exit Sub End If Do While mWindow.Busy DoEvents Loop With mDocument.forms(0) .Item("textfield1" .Value = xm.Item("textfield2" .Value = nl.Item("rbgroup" .Item(xb - 1).Checked = True.Item("select1" .Item(zc - 1).Selected = True.Item("Submit1" .ClickEnd With '释放对象 Set mDocument = Nothing Set mWindow = Nothing End Sub |
8楼2013-06-21 09:09:40
2楼2013-06-19 18:34:04
3楼2013-06-20 11:16:10
michaelwlin
木虫 (正式写手)
- 应助: 2 (幼儿园)
- 金币: 5229.8
- 红花: 1
- 帖子: 653
- 在线: 47.1小时
- 虫号: 1070278
- 注册: 2010-08-06
- 性别: GG
- 专业: 结构工程
4楼2013-06-20 11:21:54










+ startcol \ 26 - 1)
回复此楼