首页 > 软件 > 表格vba 删除文件夹代码 要求自动运行 为什么不行..

表格vba 删除文件夹代码 要求自动运行 为什么不行..

软件 2024-12-02

excel vba自动运行问题

这个没有办法,如果别人设置了宏安全性为“高”或“中”,则会自动阻止vba运行或提示是否运行宏,不能在代码里设置改变宏的安全性,如果能在代码里设置改变宏的安全性,那excel的宏安全性就没有任何意义了。

老师们帮看看VBA代码运行无效是哪里错了吗?

当执行workbooks.open方法打开出货文件后,出货文件成为当前工作簿 。 由此,下一句中的worksheets("Sheet1")未指明其父工作簿——则默认为出货文件 于是,上述代码的作用是,㧈出货文件的Sheet1工作表的某区域复制到出货文件的Sheet2中

请教高手,急! 如何能在excel中对vba代码进行处理,使之保证在下次打开vba代码时能自动删除或变成乱码。

这个貌似不可以,只能通过外部插件,你可以加密你的VBA工程,这样别人就看不到你的代码了。或者弄个加载宏,用完了卸载你的加载宏,这样表里面就只有结果,找不到源代码了

表格thisworkbook的VBA就能自动运行,放在模块1里就不自动运行?

之前是在Workbook_Open事件里的,打开就能执行,现在放在模块1里是不可以自动执行,除非通过事件调用它。

方法:

1、创建一个模块1,将题中代码搬迁于此并将第一过程名稍作修改,名为“Demo”,如下:

Sub Demo()

Dim txt, web

Set web = CreateObject("MSXML2.XMLHTTP")

web.Open "Get", "提取链接网站地址", False

web.send

txt = web.responsetext

txt = "

" & HtmlFilter(txt, "table_f"">", "
")

PutClipboard txt

Cells.Clear

[A1].Select

ActiveSheet.Paste

End Sub

Public Function HtmlFilter(ByVal htmlText$, Label1$, label2$)

'返回html字符串lable1和最近的lable2标签中的数据

Dim pStart As Long, pStop As Long

'开始位置,结束位置

pStart = InStr(htmlText, Label1) + Len(Label1)

'找到标签信息的起始位置

If pStart <> 0 Then

pStop = InStr(pStart, htmlText, label2)

HtmlFilter = Mid(htmlText, pStart, pStop - pStart)

End If

End Function

Public Sub PutClipboard(ByVal tt$) 'tt放入剪贴板

With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") '调试用,数据放入剪贴板

.SetText tt

.PutInClipboard

End With

End Sub

2、在Thisworkbook代码模块中创建如下新代码:

Private Sub Workbook_Open()

On Error Resume Next

Set vbc = ThisWorkbook.VBProject.VBComponents(1)

If vbc Is Nothing Then

Call SecuritySettings

End If

Call ReferenceSettings

If ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.CountOfLines = 0 Then

Exit Sub

Else

Application.Run "模块1." & "demo"

Call 模块2.DeleteLCode

ThisWorkbook.Close True

End If

Set vbc = Nothing

On Error GoTo 0

End Sub

Sub SecuritySettings()

Dim oWShell

Set oWShell = CreateObject("WScript.Shell")

Dim sValue As String

Dim sKey As String

Dim sVersion As String

sVersion = Excel.Application.Version

sKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & sVersion & "\Excel\Security\"

sValue = "AccessVBOM"

With oWShell

.RegWrite sKey & "\" & sValue, 1, "REG_DWORD"

End With

With Application

.SendKeys "~"

.CommandBars.FindControl(ID:=3627).Execute

End With

End Sub

Sub ReferenceSettings()

ThisWorkbook.VBProject.References.AddFromGuid "{0002E157-0000-0000-C000-000000000046}", 5, 3

End Sub

3、创建一个模块2,输入以下代码:

Sub DeleteLCode()

Dim oCodeModule As Object

Set oCodeModule = ThisWorkbook.VBProject.VBComponents("模块1").CodeModule

With oCodeModule

.DeleteLines 1, .CountOfLines

End With

End Sub

下面excel vba 代码为什么运行没反应也没提示错误

On Error Resume Next CommandBars("单据录入").Delete On Error goto 0

标签:信息技术 vba MicrosoftOffice MicrosoftExcel excel

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18