当我试图遵循最佳实践时,我将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) 我一直在尝试向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.有人可以帮忙吗?谢谢.
我想通过用两个不同的字符串构造一个变量来获取变量的值.
把它分解到最低限度:
TA = 1
TB = 2
TC = 3
B = 2
Messagebox.Show(B*("T"+"B"))
Run Code Online (Sandbox Code Playgroud)
我知道这是最小的,我不想在复杂的代码中使用它.我也知道有办法做到这一点,但我在一个功能最少的环境中工作.
那么有一个基本的方法吗?
我有代码解析字符串上的最后一个单词.即.Stack/Over/Flow会给我"Flow".
但我希望得到"Over/Flow".
这就是我得到的,但只能得到"流动"
arr(counter - 2) = "'" & mid(Text, InStrRev(Text, "/") + 1) & "'"
简单的事情并不简单.我试图删除基于具有以"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之前,我确实尝试格式化数据列,但它似乎没有做到这一点.
思考?
我想知道,是否有可能强制我的工作表的用户,在使用之前启用宏.
并且在他们说"确定"启用宏之前,让我的宏被搁置.
先感谢您 :)
我编写了一个简单的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中有数据,我需要填充缺失(空白)数据,输入数据如下:
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)中有明确的解决方案吗?
我有这个链接: https ://s23527.pcdn.co/wp-content/uploads/2017/04/wine_speedlights_kit_lens.jpg.optimal.jpg
(我不介意如何获得它,它可以在1920上单元格B2
和1080上单元格C2
)
谷歌搜索我找到了一个程序来突出显示活动工作表中的合并单元格:
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
语句来删除当前迭代的行.
我哪里错了?
我并不关心突出显示合并的单元格.最终目标是删除其中包含合并单元格的任何行.