标签: vba

从VBA项目中删除密码

如何以编程方式从Excel VBA项目中删除(已知)密码?

要明确:我想从VBA项目中删除密码,而不是工作簿或任何工作表.

security excel vba excel-vba password-protection

50
推荐指数
3
解决办法
46万
查看次数

返回数组Excel VBA中元素的索引

我有一个数组prLst是一个整数列表.整数未排序,因为它们在数组中的位置表示电子表格中的特定列.我想知道如何在数组中找到一个特定的整数,并返回其索引.

如果不将数组转换为工作表上的范围,似乎没有任何资源可以显示我.这看起来有点复杂.这对VBA来说是不可能的吗?

arrays indexing excel vba find

50
推荐指数
2
解决办法
23万
查看次数

让Excel从VBA中刷新工作表上的数据

如何在Excel中获取电子表格数据以从VBA中重新计算自己,而不仅仅是改变单元格值?

excel vba excel-vba

49
推荐指数
4
解决办法
41万
查看次数

从中调用Function的Excel单元格

如何从调用VBA函数的单元格中获取?

换句话说,什么是INDIRECT(ROW(),COLUMN())的VBA等价物?

不是在寻找ActiveCell.

我想要做的是有一个简单的函数ThisRow_Col(rColumn As String)返回它所调用的行的列X. 比如在B2中我调用= ThisRow_Col("A"),它应该返回A2的值.无论哪个单元活动,这都应该有效.

编辑:谢谢Charles的答案:Application.Caller.以下代码获取当前行的列X,与选择的位置无关:

Function ThisRow_Col(rColumn As Range)
    ' Return INDIRECT(rcolumn & ROW())

    ThisRow_Col = Application.Caller.Worksheet.Cells(Application.Caller.Row, rColumn.Column).Value

End Function
Run Code Online (Sandbox Code Playgroud)

请注意,将列作为Range(ThisRow_Col(A1))传递比将其作为字符串传递更好,因为如果移动或插入列,Excel可以自动更新公式.当然,这一1A1只是一个惯例.

excel vba cell

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

Outlook 2007中的正则表达式规则?

是否可以基于正则表达式字符串在Outlook 2007中创建规则?

我想添加过滤器包含一个字符串,如消息:4000-10,四位数字后加破折号后两位数,这可以从任何东西0000-009999-99.

我正在使用它作为正则表达式:\b[0-9]{4}\-[0-9]{2}\b但过滤器不起作用.我也尝试过其他一些修改但没有运气.我无法在网上找到关于Outlook是否支持将正则表达式纳入规则的具体内容,所以我想我会问这里以防万一我浪费时间.

编辑:感谢Chris在下面的评论,我能够通过宏实现这个过滤器.我想我会在下面分享我的代码,以防它能够帮助其他人:

Sub JobNumberFilter(Message As Outlook.MailItem)
    Dim MatchesSubject, MatchesBody
    Dim RegEx As New RegExp

    'e.g. 1000-10'
    RegEx.Pattern = "([0-9]{4}-[0-9]{2})"

    'Check for pattern in subject and body'
    If (RegEx.Test(Message.Subject) Or RegEx.Test(Message.Body)) Then
        Set MatchesSubject = RegEx.Execute(Message.Subject)
        Set MatchesBody = RegEx.Execute(Message.Body)
        If Not (MatchesSubject Is Nothing And MatchesBody Is Nothing) Then
            'Assign "Job Number" category'
            Message.Categories = "Job Number"
            Message.Save
        End If
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

regex vbscript vba outlook-vba outlook-2007

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

如何用数据计算excel中的行数?

列A包含这样的数据(即频繁的空白单元格):

HEADING  <-- this is A1
kfdsl
fdjgnm
fdkj

gdfkj
4353

fdjk  <-- this is A9
Run Code Online (Sandbox Code Playgroud)

我希望能够获得具有数据的最后一个单元格的单元格引用.所以在上面的例子中我想返回:A9

我试过这个,但它停在第一个空白区(即返回A4)

numofrows = destsheet.Range("A2").End(xlDown).Row - 1
Run Code Online (Sandbox Code Playgroud)

.net vb.net excel vba excel-interop

48
推荐指数
7
解决办法
34万
查看次数

当第一个参数为false时,VBA"And"运算符是否会计算第二个参数?

Function Foo(thiscell As Range) As Boolean
  Foo = thiscell.hasFormula And (InStr(1, UCase(Split(thiscell.formula, Chr(40))(0)), "bar") > 0)
End Function
Run Code Online (Sandbox Code Playgroud)

此函数用于在(.)之前测试某个子字符串(在本例中为bar)的存在.

我遇到问题的情况是当传入函数的单元格为空时,thisCell.hasFormula为false,但是仍然正在评估和之后的语句.这给了我运行时超出范围错误的下标.

VBA是否真的继续评估And的第二个参数,即使第一个参数是假的?

excel vba operators

48
推荐指数
2
解决办法
2万
查看次数

如何根据列值在xy散点图中为点着色?

请考虑以下工作表:

     A       B        C        D
1 COMPANY  XVALUE   YVALUE   GROUP
2 Apple     45       35       red
3 Xerox     45       38       red
4 KMart     63       50       orange
5 Exxon     53       59       green
Run Code Online (Sandbox Code Playgroud)

我在Excel中使用了scatterplot函数来创建以下图表:

在此输入图像描述

但是,图表中的每个点都有一个附加属性:GROUP.有四组:red,orange,blackgreen.我想相应地为每个点着色,这样我就可以看到一个模式(例如,组green几乎总是位于图表的左侧).因为我的列表是500行长,我不能手动执行此操作.我该如何自动执行此操作?

excel charts vba excel-vba excel-formula

48
推荐指数
2
解决办法
18万
查看次数

Excel VBA中的.NumberFormat选项是什么?

你能告诉我.NumberFormatExcel VBA 中的格式选项吗?如您所知,Excel 2010支持以下类型:

在此输入图像描述

我知道我们可以将示例文本类型设置为:

.NumberFormat ="@"
Run Code Online (Sandbox Code Playgroud)

或者号码:

.NumberFormat = "0.00000"
Run Code Online (Sandbox Code Playgroud)

能告诉我VBA中其他类型的选项吗?

excel vba excel-vba excel-2010

48
推荐指数
4
解决办法
38万
查看次数

Solidworks C#Addin - 将字符串发送到宏

我目前正在开发一个新的Solidworks任务窗格,主要实现一些我用更方便的格式编写的"旧"宏.其中一些需要通过文本框进行用户输入,我希望将其包含在任务窗格中.

问题是,我找不到编写临时文件或将这些字符串导入我的宏的方法(我宁愿不花时间重写)

有没有其他方法将这些字符串发送到我的宏?Addin在C#中,我目前正在使用Solidworks"RunMacro2"方法.

谢谢!

编辑:在下面添加一些代码片段.有问题的主要宏是用于在整个程序集中传播自定义属性文件.

namespace Efficiency_Interface
{
    [ComVisible(true)]
    [ProgId(ProjMan_Tab_PROGID)]
    public partial class Project_Management_Tab : UserControl
    {

        SwAddin SolidRun = new SwAddin();
        public const string ProjMan_Tab_PROGID = "Proj Management";
        public const string scratchFile = "C:\\keyStoneAddinScratch.txt";
        StreamWriter writeText = new StreamWriter(scratchFile);

        public Project_Management_Tab()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            foreach (var textBox in this.Controls.OfType<TextBox>())
            {
                writeText.WriteLine(textBox.Text);
            }
            writeText.Close();
            SolidRun.runGen("proc");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

以上是我的任务窗格的基本代码.下面是我的主要插件类的代码片段,它还包含我的其他按钮的代码.

public void runCreate4Pack()
{
    iSwApp.RunMacro2(macroPath + "CREATE 4 SIZE PACKAGE.swp", "", "", 0, …
Run Code Online (Sandbox Code Playgroud)

c# vba add-in solidworks

48
推荐指数
1
解决办法
2066
查看次数