标签: vba

如何使用带有明确选项的命名常量?

当我试图遵循最佳实践时,我将Option Explicit我的代码置于顶部,并声明我的所有变量.但这导致了与另一种使用命名常量的最佳实践的冲突.我该怎么办?

第一个问题是xlFalse; 我对任何其他xl变量都没有任何问题,所以这看起来像一个独立的案例.但我并不是真的担心它,因为我可以放入False并且代码可以工作.(它有效,对吧?)

Sub GetEOP()

    'Executes when the user clicks the "Import Data" button, imports the EOP data

    GlobalDeclarations

    'Open Open dialog, assigns selected file path to wordFileName
    wordFileName = Application.GetOpenFilename("Rich Text Files (*.rtf), *.rtf," & "Word Files (*.doc;*.docx), *.doc;*.docx", , "EOP Table File?")

    'Stop code if the user clicks Cancel (otherwise, wordFileName would be assigned a value of "False")
    If wordFileName = False Then Exit Sub

    'Open the selected file …
Run Code Online (Sandbox Code Playgroud)

excel vba ms-word excel-vba word-vba

0
推荐指数
1
解决办法
126
查看次数

SQL中的VBA WHERE子句

我一直在尝试向sql VBA中的WHERE子句添加其他过滤条件.上一个select语句工作正常,但我似乎无法使更新的WHERE子句起作用.这就是我所拥有的:

WHERE tblretirements.Applicationcancelled = 'No' 
    AND tblretirements.FirstPayDate IS NULL 
    OR tblretiremetns.FirstPayDate BETWEEN 'now()' & 'Beginning of Prior Fiscal Year'
Run Code Online (Sandbox Code Playgroud)

我对这个BETWEEN陈述并不熟悉,并且我很肯定我搞砸了这个.我需要让代码动态地引用今天的日期和上一个会计年度的开始,现在是6/1/2017.有人可以帮忙吗?谢谢.

sql excel ms-access vba

0
推荐指数
1
解决办法
227
查看次数

想要使用字符串值以名称访问变量

我想通过用两个不同的字符串构造一个变量来获取变量的值.

把它分解到最低限度:

TA = 1
TB = 2
TC = 3
B = 2

Messagebox.Show(B*("T"+"B"))
Run Code Online (Sandbox Code Playgroud)

我知道这是最小的,我不想在复杂的代码中使用它.我也知道有办法做到这一点,但我在一个功能最少的环境中工作.

那么有一个基本的方法吗?

vba

0
推荐指数
1
解决办法
46
查看次数

VBA,使用InstrRev的最后一个"/"

我有代码解析字符串上的最后一个单词.即.Stack/Over/Flow会给我"Flow".

但我希望得到"Over/Flow".

这就是我得到的,但只能得到"流动"

arr(counter - 2) = "'" & mid(Text, InStrRev(Text, "/") + 1) & "'"

excel vba excel-vba

0
推荐指数
1
解决办法
68
查看次数

VBA使用Like运算符删除行

简单的事情并不简单.我试图删除基于具有以"2L"开头的数据的特定列的行.所以我写了这段代码(LastRow被理解):

Sub Cleanup()

For i = 1 To LastRow
    If Range("F" & i) Like "2L*" Then Rows(i).delete
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)

问题是它确实删除了行.我不知道删除行的标准是什么,但我知道它并没有得到每一行都有一个以"2L"开头的单元格.我从1100行开始,它下降到677.

我没有创建我正在编写脚本的excel.唯一的线索是我确实尝试格式化列,当格式窗口打开时,它们没有单一类型.在我将代码运行为Text之前,我确实尝试格式化数据列,但它似乎没有做到这一点.

思考?

excel vba for-loop

0
推荐指数
1
解决办法
113
查看次数

强制Excel用户在代码运行之前启用宏

我想知道,是否有可能强制我的工作表的用户,在使用之前启用宏.

并且在他们说"确定​​"启用宏之前,让我的宏被搁置.

先感谢您 :)

excel vba excel-vba

0
推荐指数
1
解决办法
233
查看次数

Excel VBA Excel迭代列

我编写了一个简单的VBA脚本,打开给定文件夹中的所有.xls文件,并将这些文件中所需的信息复制并粘贴到新的小册子中.新小册子中的每一行都与文件夹中的文件相关联.像这样

Column1, Column2, Column3  
FileName1, ABC, XYZ  
FileName2, DEF, TUV
Run Code Online (Sandbox Code Playgroud)

第3列中的信息具有格式

Range("C"&X).TextToColumns DataType:=xlDelimited, Other:=True _
OtherChar:="("
Columns("E:E").Insert Shift:=xlToRight *
Range("D"&X).TextToColumn DataType:=xlDelimited, Other:=True _
OtherChar:=")"
Range("C"&X).TextToColumns DataType:=xlDelimited, Other:=True _
OtherChar:="(" **
Columns("E:Z").Delete
Columns("C:C").Delete
Run Code Online (Sandbox Code Playgroud)

因为我希望Column3看起来不错,所以我迭代了每一行并使用了

Column1, Column2, Column3
FileName1, ABC, Very_Important_Info_1
FileName2, DEF, Very_Important_Info_2
Run Code Online (Sandbox Code Playgroud)

最后,我结束了

Column1, Column2, Column3  
FileName1, ABC, XYZ  
FileName2, DEF, TUV
Run Code Online (Sandbox Code Playgroud)

*这是必要的,所以当我第二次调用TextToColumn时,我没有收到一条消息,询问我是否要覆盖该列中已有的内容.

**无论出于什么原因,在调用OtherChar之后:="("我第一次看到的是"(Very_Important_Info)ArbitraryString2"左边的参数仍然附加到信息而不是让它消失.有谁知道为什么这可能是吗?我不介意第二次调用该方法,但没有它,我的列C看起来像"(Very_Important_Info",我不明白为什么它会以这种方式出现.

excel vba

0
推荐指数
1
解决办法
56
查看次数

插入缺失的数据

我在excel中有数据,我需要填充缺失(空白)数据,输入数据如下:

row1 --> 1   2      3   blank   5   6   blank  blank   9   10

row2 --> 2   4   blank  blank   10  12    14   blank   18  blank
Run Code Online (Sandbox Code Playgroud)

VBA代码必须读取每一行并填充它们,如:

row1 --> 1   2  3  4   5    6    7    8    9    10

row2 --> 2   4  6  8   10   12   14   16   18   20
Run Code Online (Sandbox Code Playgroud)

在VBA(excel)中有明确的解决方案吗?

excel vba linear-interpolation

0
推荐指数
1
解决办法
366
查看次数

从URL获取图像文件维度

我有这个链接: https ://s23527.pcdn.co/wp-content/uploads/2017/04/wine_speedlights_kit_lens.jpg.optimal.jpg

它位于A2单元格: 之前

我想让Cell B2获得这个JPG的URL的维度 后

(我不介意如何获得它,它可以在1920上单元格B2和1080上单元格C2)

excel vba excel-vba dimensions

0
推荐指数
1
解决办法
142
查看次数

选择包含合并单元格的行并删除它们(行)

谷歌搜索我找到了一个程序来突出显示活动工作表中的合并单元格:

Sub DeleteRows()
    Dim x As Range
    For Each x In ActiveSheet.UsedRange
        If x.MergeCells Then
            x.Interior.ColorIndex = 8
            ActiveCell.EntireRow.Delete
        End If
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

所以我添加了ActiveCell.EntireRow.Delete语句来删除当前迭代的行.

我哪里错了?

我并不关心突出显示合并的单元格.最终目标是删除其中包含合并单元格的任何行.

excel vba

0
推荐指数
1
解决办法
196
查看次数