excel运行错误1004什么意思,电子表格excel表格1004错误
1. excel运行错误1004什么意思
Sub 合并()Dim j, x&Application.ScreenUpdating = FalseFor Each j In Sheets If j.Name <> ActiveSheet.Name Then x = Range("a65536").End(xlUp).Row + 1 j.UsedRange.Copy Cells(x, 1) End IfNextRange("a1").SelectApplication.ScreenUpdating = TrueMsgBox "完毕"End Sub
试试这样
你的代码在少量表格运行并无错误,或者有的簿,或者方法(如copy、delete)会出现错误
2. excel表格1004错误
网络电视显示错误代码1004的意思是: 1、这个代码本身的意思是指机顶盒无法正确访问电信IPTV服务器。 2、出现的原因大多是由于机顶盒与上网猫之间的连接不稳定,或是由于出户线故障,造成访问失败。 3、处理可自行重启下机顶盒与猫,重新插拔有关接头(机顶盒与猫之间的网线接头),如果故障仍然存在,报修,请电信维护人员上门处理。
3. 运行错误1004 excel
1、查看下工具--宏--安全性,安全级别降低,可靠发行商保留空白。
2、如果新建文档也会出现上述情况,试打开EXCEL后,工具--宏--VB编辑器,删除里面的程序,再观察。
3、或者新建一个用户也可以解决。解决方法:打开电脑中的excel之后,使用鼠标单击左上角的文件按钮,接着依次点击“选项”-“信任中心”。打开信任中心设置界面之后,在左侧单击“宏设置”选项卡,随后使用鼠标勾选开发人员宏设置下方的:“信任对VBA工程对象模型的访问”选项,完成之后保存以上设置即可。
4. Excel 1004
excel运行VBA,出现1004错误是因为未勾选“信任对VBA工程对象模型的访问”选项,勾选即可。
工具/材料:Microsoft Office Excel2007版,Excel表格。
1、首先双击打开Excel表格。
2、其次在该窗口上,点击左上角的OFFICE图标。
3、接着在弹出窗口中,点击下方的“Excel选项”按钮。
4、其次在弹出窗口中,点击左侧里“信任中心”选项。
5、之后在弹出窗口中,点击右侧里“信任中心设置”按钮。
6、然后在弹出窗口中,点击左侧里“宏设置”选项。
7、再者在弹出窗口中,勾选右侧里“信任对VBA工程对象模型的访问”选项。
8、最后在弹出窗口中,点击“确定”按钮即可
5. excel报1004错误
excel 运行时 1004 错误时可解决方式如下:
1、以Excel2016为例,单击“文件”菜单。
2、在弹出列表中选择“选项”。
3、在弹出的Excel选项对话框中,选择“信任中心”,点击右侧“信任中心设置”按钮。
4、在弹出的“信任中心”对话框中,选择“宏设置”,勾选“信任对VBA工程对象模型的访问”,再点击确认即可。
6. Excel错误1004
excel运行时1004错误时可解决方式如下:
1、以Excel2016为例,单击“文件”菜单。
2、在弹出列表中选择“选项”。
3、在弹出的Excel选项对话框中,选择“信任中心”,点击右侧“信任中心设置”按钮。
4、在弹出的“信任中心”对话框中,选择“宏设置”,勾选“信任对VBA工程对象模型的访问”,再点击确认即可。
7. excel开始检查出现1004
据我使用的经历,Select 语句在下面的几种情况下会出错:
1. 工作表被隐藏;
2. 单元格区域被保护,无法选择
8. excel vba 1004
一、增加模块
1.增加一个模块,命名为“我的模块”
ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule).Name = "我的模块"
系统常量vbext_ct_StdModule=1
2.增加一个类模块,命名为“我的类”
ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_ClassModule).Name = "我的类"
vbext_ct_ClassModule=2
3.增加一个窗体,命名为“我的窗体”
ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm).Name = "我的窗体"
vbext_ct_MSForm=3
二、删除模块
1.删除“模块1”
ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("模块1")
2.删除窗体“UserForm1”
ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("UserForm1")
3.删除类模块“类1”
ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("类1")
4.删除所有的窗体
Sub RmvForms()
Dim vbCmp As VBComponent
For Each vbCmp In ThisWorkbook.VBProject.VBComponents
If vbCmp.Type = vbext_ct_MSForm Then ThisWorkbook.VBProject.VBComponents.Remove vbCmp
Next vbCmp
End Sub
相关:
工作表和ThisWorkbook的模块类型为vbext_ct_Document=100
三、增加代码
1.在“模块1”中插入代码
如果需要在“Sheet1”、“Thisworkbook”、或“Userform1”中操作,用只需将下面的“模块1”换成相应的名称即可。
方法1:
在模块的开始增加代码,增加的代码放在公共声明option,全局变量等后面。
Sub AddCode1()
ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.AddFromString _
"sub aTest()" & Chr(10) & _
"msgbox ""Hello""" & Chr(10) & _
"end sub"
End Sub
方法2:
在模块指定行处增加代码,原代码后移。增加代码不理会和判断插入处代码的内容。当指定行大于最后一行行号时,在最后一行的后面插入。
Sub AddCode2()
With ThisWorkbook.VBProject.VBComponents("模块1").CodeModule
.InsertLines 1, "sub aTest()"
.InsertLines 2, "msgbox ""Hello"""
.InsertLines 3, "end sub"
End With
End Sub
相关语句:
(1)“模块1”中代码总行数:
ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.CountOfLines
(2)“模块1”中代码公共声明部分的行数:
ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.CountOfDeclarationLines
(3)显示“模块1”中第1行起的3行代码内容:
Sub ShowCodes()
Dim s$
s = ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.Lines(1, 3)
Debug.Print s
End Sub
(4)过程aTest的起始行数:
ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.ProcBodyLine("aTest", vbext_pk_Proc)
ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.ProcStartLine("aTest", 0)
系统常量vbext_pk_Proc=0
二者的区别是ProcBodyLine返回sub aTest或Function aTest所在的行号,如果sub前面有空行,ProcStartLine返回空行的行号。
(5)过程aTest的总行数:
ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.ProcCountLines("aTest", vbext_pk_Proc)
2.建立事件过程
建立事件过程除了使用上面的代码如下面的AddEventsCode1外,还可以使用CreateEventProc方法,如AddEventsCode2所示。
一般方法:
Sub AddEventsCode1()
ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule.AddFromString _
"Private Sub Workbook_Open()" & Chr(13) & _
"MsgBox ""Hello""" & Chr(13) & _
"End Sub"
End Sub
'CreateEventProc方法:
Sub AddEventsCode2()
Dim i%
With ThisWorkbook.VBProject.VBComponents("Sheet1").CodeModule
i = .CreateEventProc("SelectionChange", "Worksheet") + 1
.InsertLines i, "Msgbox ""Hello"""
End With
End Sub
上面CreateEventProc的两个参数建立的事件过程为Worksheet_SelectionChange,分别是下划线两边的内容。
相关:
测试是否存在SelectionChange事件
下面函数测试模块modulname是否存在过程subname,如果存在,则返回起始行号,否则返回0。
debug.print HasSub("Worksheet_SelectionChange","Sheet1")
Function HasSub(ByVal subname As String, ByVal modulname As String) As Long
On Error Resume Next
Dim i&
i = ThisWorkbook.VBProject.VBComponents(modulname).CodeModule.ProcBodyLine(subname, 0)
If Err.Number = 35 Then
Err.Clear
HasSub = 0
Else
HasSub = i
End If
End Function
如果存在,则返回起始行号,否则返回0。
四、删除代码
1.删除Sheet1中第2行起的三行代码:
如果只删除1行代码,第二个参数可省略。
Sub DelCodes()
ThisWorkbook.VBProject.VBComponents("Sheet1").CodeModule.DeleteLines 2, 3
End Sub
2.删除“模块1”的所有代码:
Sub DelCodes()
With ThisWorkbook.VBProject.VBComponents("模块1").CodeModule
.DeleteLines 1, .CountOfLines
End With
End Sub
3.删除过程aTest:
Sub DelCodes()
With ThisWorkbook.VBProject.VBComponents("模块1").CodeModule
.DeleteLines .ProcStartLine("aTest", 0), .ProcCountLines("aTest", 0)
End With
End Sub
4.将“模块1”的第5行代码替换为“x=3”
ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.ReplaceLine 5, "x=3"
五、引用项目
1.增加引用
ThisWorkbook.VBProject.References.AddFromFile "C:\Windows\System32\asctrls.ocx"
2.取消引用
ThisWorkbook.VBProject.References.Remove ThisWorkbook.VBProject.References("ASControls")
这里ASControls是引用的名字,即后面的rf.Name。
3.显示当前所有引用
Sub ShowRefs()
Dim rf As VBIDE.Reference
For Each rf In ThisWorkbook.VBProject.References
Debug.Print rf.Name, rf.FullPath
Next
End Sub
六、信任及密码
上面所有操作都基于这样的前题:
(1)EXCEL已设置:
工具(T)-宏(M)-安全性(M)-可靠发行商(T)-勾选了“信任对于VB项目的访问(V)”
(2)工程没有设置密码
如果不能满足它们中的任何一个,代码运行就会出错。因为微软不希望我们对VBProject进行操作,我们无从知道这种操作的直接方法被藏到了什么地方。幸运的是,微软在关起正门的同时,还是为我们留了一道门:SendKeys。借助于这道后门和“错误陷阱”,我们仍可以完成我们所要做的事。
下面给出绕开这两道门的示意代码,如果你要运行它们,请记得切回EXCEL主界面,而不是在VBE中直接运行。
1.信任对于VB项目的访问
Sub SetAllowableVbe()
On Error Resume Next
Dim Chgset As Boolean
'陷阱测试,VBProject.Protection在这儿并无实际的意义
Debug.Print ThisWorkbook.VBProject.Protection
If Err.Number = 1004 Then
Err.Clear
Application.SendKeys "%TMS%T%V{ENTER}"
Chgset = True
DoEvents
End If
'要执行的操作....
'.....
'操作完成后还原操作前的状态
If Chgset Then Application.SendKeys "%TMS%T%V{ENTER}"
End Sub
2.操作密码工程
Sub AllowPass()
Dim pw$
pw = "Password"
If ThisWorkbook.VBProject.Protection = vbext_pp_locked Then
Application.VBEmandBars(1).Controls("工具(T)").Controls("VBAProject 属性(&E)...").Execute
Application.SendKeys pw & "{ENTER}{ENTER}"
DoEvents
End If
'要执行的操作….
'.....
End Sub
Protection属性返回工程的受保护状态,vbext_pp_locked(1)为受保护,vbext_pp_none(0)表示没有保护。
9. excel出现1004错误
第一步在我们的电脑上打开要筛选数据的excel表格,点击数据
第二步点击数据之后,选择上要筛选的数据,点击自动筛选
第三步点击自动筛选之后,第一行会出现下拉列表,选择按哪行数据筛选,这里选择分数,点击分数的下拉列表之后,弹出框点击通过数字筛选
第四步点击数字筛选之后,有很多筛选条件,这里选择大于或等于
第五步进去自定义筛选条件界面,这里有两个筛选条件,可以只选择一个,如果两个条件都需要,根据需要选择是与还是或
6第六步点击确定之后,可以看到数据已经筛选出来了,分数全部都是大于或等于80分的数据