小编bre*_*tdj的帖子

以编程方式保存Excel加载项

我有一个工作表,偶尔由用户更新,用于制作加载项(.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)

在这方面的任何帮助将不胜感激。

excel vba add-in excel-vba excel-addins

5
推荐指数
1
解决办法
7412
查看次数

从VBA读取注册表子项

我有以下一段VB代码来获取注册表子项(不是注册表的键或值).我只需要在Microsoft子键中列出应用程序(例如Office,记事本,键盘等).

它曾在VB.NET,但我想同样的代码适用于VBA中宏,我说弄一个运行时错误"Object variable or With block variable not set"上线GetOBjectEmumKey.我虽然以下代码应兼容VB.NETVBA.有人可以解释一下吗?

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)

registry vba

5
推荐指数
1
解决办法
1万
查看次数

如何在 Outlook 中自动安排宏?

我想知道如何为 Outlook 自动安排一个宏。我创建了一个宏,它从电子邮件中提取附件并将​​其存储在一个文件夹中。当我通过单击宏“执行”执行该宏时,该宏运行良好。

但我希望这个宏每天自动执行,例如在来我办公室之前的 08:30。

谢谢

macros vbscript powershell outlook

5
推荐指数
1
解决办法
1万
查看次数

Excel VBA中的高效下壳体

现在我使用下面的代码将整个列更改为小写.

我想知道是否有更有效的方法来做到这一点 - 我的工作表中有大约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 excel-2007 excel-vba

5
推荐指数
2
解决办法
2651
查看次数

Excel VBA:如何在忽略错误单元格的同时查找范围的最大值/最小值

如何在Excel中使用VBA来确定包含错误单元格(例如#N/A空单元格)的范围的最大/最小值?我知道这是一个相当容易的任务,使用类似的东西来征服Excel数组公式
=MIN(IF(A1:A10="#N/A"))

但我非常希望使用VBA来实现这一目标.

我正在处理数千行数据,因此最快的解决方案将是首选.

非常感谢!

excel vba excel-formula

5
推荐指数
1
解决办法
1万
查看次数

Excel 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)

regex excel vba

5
推荐指数
1
解决办法
2931
查看次数

突出显示内部没有特定字符(小写字母az)的任何单元格

我有一些乱码(或者,不是乱码,但非英语字符,如带有斯堪的纳维亚口音的A等),我需要从大约80,000个条目中找出它们.

我可以编写一个公式来拾取并标记包含除其他任何内容之外的任何单元格

ABCDEFGHIJKLMNOPQRSTUVWXYZ?

excel vba excel-formula

5
推荐指数
1
解决办法
1907
查看次数

VBA宏可以批量更新同一位置的多个文件

这是非常新的所以请帮忙.我试图批量更新静态文件夹位置的文件,一个文件夹中的许多文件.

我想做的是

  • 在Excel 2010中运行VBA宏以转到网络位置文件夹,
  • 打开文件夹中的第一个文件.
  • 取消对工作簿的保护,工作表调用另一个marco来运行更改
  • 然后保护工作表关闭文件
  • 然后移动到文件夹中的下一个文件,直到所有文件都已更正.

我创建了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)

excel vba

5
推荐指数
1
解决办法
1万
查看次数

Excel:删除所有内容?在网址中

我已经在网上搜索了公式或添加了插件,但似乎找不到任何公式。

我想知道是否可以删除URL中问号后的所有内容?

http://www.site.com/index.php?98943j%klr

http://www.site.com/index.php

谢谢!

excel excel-formula

5
推荐指数
1
解决办法
5722
查看次数

从文件夹中删除重复的Outlook项目

问题

  1. 当我将项目从在线存档移动到pst文件时,Outlook 2016已损坏.
  2. PST文件已被恢复....但许多项目(~7000)重复5次
  3. 有一系列项目类型,标准消息,会议请求等

我尝试了什么,我
看了现有的解决方案和工具,包括:

  1. 重复删除工具 - 除了一次删除10个项目的试用选项之外,其中没有一个是免费的.
  2. 各种代码解决方案包括:
    Jacob Hilderbrand 在Outlook中从Excel 运行
    以删除重复电子邮件的努力 -

我决定采用代码路由,因为它相对简单,并且可以更好地控制重复报告的方式.

我将在下面发布自己的解决方案,因为它可能会帮助其他人

我希望看到其他可能的方法(也许是PowerShell)来解决这个问题,这可能比我的更好.

outlook vba outlook-vba outlook-2016

5
推荐指数
1
解决办法
5414
查看次数