我有一个工作表,偶尔由用户更新,用于制作加载项(.XLAM)。加载项位于网络共享上,并且用户链接到该共享。我希望使用户能够轻松更新此加载项(确保将其标记为只读)
我在这里看到了Ken Puls的有关部署Excel加载项的文章,但是.SaveCopyAs他使用的方法似乎无法接受文件类型。
该.SaveAs方法可以,但是当尝试此操作时,我收到一条消息,指出文件格式或扩展名无效,我已经尝试使用.XLAM和.XLA进行如下操作。
DeployPath = "C:\Menu.xlam"
.SaveAs Filename:=DeployPath, ReadOnlyRecommended:=True, FileFormat:=xlOpenXMLAddIn
Run Code Online (Sandbox Code Playgroud)
在这方面的任何帮助将不胜感激。
我有以下一段VB代码来获取注册表子项(不是注册表的键或值).我只需要在Microsoft子键中列出应用程序(例如Office,记事本,键盘等).
它曾在VB.NET,但我想同样的代码适用于VBA中宏,我说弄一个运行时错误"Object variable or With block variable not set"上线GetOBject和EmumKey.我虽然以下代码应兼容VB.NET和VBA.有人可以解释一下吗?
Dim temp As Object
'On Error Resume Next
Const HKEY_CURRENT_USER = &H80000001
temp = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & "." & "\root\default:StdRegProv")
Dim rPath As String
rPath = "Software\Microsoft\IdentityCRL\UserExtendedProperties"
Dim arrSubKeys(5) As Object
temp.EnumKey(HKEY_CURRENT_USER, rPath, arrSubKeys)
For Each ask In arrSubKeys
MsgBox(ask.ToString)
Next
Run Code Online (Sandbox Code Playgroud) 我想知道如何为 Outlook 自动安排一个宏。我创建了一个宏,它从电子邮件中提取附件并将其存储在一个文件夹中。当我通过单击宏“执行”执行该宏时,该宏运行良好。
但我希望这个宏每天自动执行,例如在来我办公室之前的 08:30。
谢谢
现在我使用下面的代码将整个列更改为小写.
我想知道是否有更有效的方法来做到这一点 - 我的工作表中有大约150K行.
这需要一些时间才能完成,有时我会收到Out of Memory错误.
第一个子
Sub DeletingFl()
Dim ws1 As Worksheet
Dim rng1 As Range
Application.ScreenUpdating = False
Set ws1 = Sheets("Raw Sheet")
ws1.AutoFilterMode = False
Set rng1 = ws1.Range(ws1.[a1], ws1.Cells(Rows.Count, "A").End(xlUp))
rng1.AutoFilter 1, "Florida"
If rng1.SpecialCells(xlCellTypeVisible).Count > 1 Then
Set rng1 = rng1.Offset(1, 0).Resize(rng1.Rows.Count - 1)
rng1.EntireRow.Delete
End If
ws1.AutoFilterMode = False
Call DeletingEC
End Sub
Sub DeletingEC()
Dim ws1 As Worksheet
Dim rng1 As Range
Application.ScreenUpdating = False
Set ws1 = Sheets("Raw Sheet") …Run Code Online (Sandbox Code Playgroud) 如何在Excel中使用VBA来确定包含错误单元格(例如#N/A空单元格)的范围的最大/最小值?我知道这是一个相当容易的任务,使用类似的东西来征服Excel数组公式
=MIN(IF(A1:A10="#N/A"))
但我非常希望使用VBA来实现这一目标.
我正在处理数千行数据,因此最快的解决方案将是首选.
非常感谢!
我正在运行 VBA (Excel 2003) 并测试正向后视正则表达式模式。我运行下面的函数但收到以下错误:
Run-time error '5017': Method 'Execute' of object 'IRegExp2' failed
我也试过,
Set re = CreateObject("vbscrip.regexp")
但我得到同样的错误。我已经成功地测试了一些积极的前瞻,并且它们有效。只是后面的问题是有问题的。我已经用 Expresso 测试了下面的模式,效果很好。这是 VBA 特有的风味问题吗?
Function regexSearch(pattern As String, source As String) As String
Dim re As RegExp
Dim matches As MatchCollection
Dim match As match
'Create RegEx object
pattern = "(?<=a)b"
source = "cab"
Set re = New RegExp
re.Multiline = False
re.Global = True
re.IgnoreCase = False
re.pattern = pattern
'Execute
Set matches = re.Execute(source)
'Output
For Each match …Run Code Online (Sandbox Code Playgroud) 我有一些乱码(或者,不是乱码,但非英语字符,如带有斯堪的纳维亚口音的A等),我需要从大约80,000个条目中找出它们.
我可以编写一个公式来拾取并标记包含除其他任何内容之外的任何单元格
ABCDEFGHIJKLMNOPQRSTUVWXYZ?
这是非常新的所以请帮忙.我试图批量更新静态文件夹位置的文件,一个文件夹中的许多文件.
我想做的是
我创建了marco进行更改,这称为"编辑"
文件类型是xlsm,工作簿和工作表受密码保护我如何自动运行宏来转到网络位置并串行打开每个文件,取消保护,调用宏,然后重新保护文档关闭文件并移动到下一个文件直到它们全部更新.
Sub Auto_open_change()
Dim WrkBook As Workbook
Dim StrFileName As String
Dim FileLocnStr As String
Dim LAARNmeWrkbk As String
PERNmeWrkbk = ThisWorkbook.Name
StrFileName = "*.xlsx"
FileLocnStr = ThisWorkbook.Path
Workbooks.Open (FileLocnStr & "\" & StrFileName)
Workbooks(StrFileName).Activate
With Application.FindFile
SearchSubFolders = False
LookIn = "Network location"
Filename = "*.xlsm"
If .Execute > 0 Then
Debug.Print "There were " & .FoundFiles.Count & " file(s) found."
For i = 1 To .FoundFiles.Count
WrkBook = Workbooks.Open(Filename:=.FoundFiles(i)) …Run Code Online (Sandbox Code Playgroud) 我已经在网上搜索了公式或添加了插件,但似乎找不到任何公式。
我想知道是否可以删除URL中问号后的所有内容?
至
谢谢!
问题
我尝试了什么,我
看了现有的解决方案和工具,包括:
我决定采用代码路由,因为它相对简单,并且可以更好地控制重复报告的方式.
我将在下面发布自己的解决方案,因为它可能会帮助其他人
我希望看到其他可能的方法(也许是PowerShell)来解决这个问题,这可能比我的更好.
vba ×8
excel ×7
excel-vba ×2
outlook ×2
add-in ×1
excel-2007 ×1
excel-addins ×1
macros ×1
outlook-2016 ×1
outlook-vba ×1
powershell ×1
regex ×1
registry ×1
vbscript ×1