标签: vba

给定Range对象时,遍历一系列单元格中的每个单元格

假设我有以下代码:

Sub TestRangeLoop()
    Dim rng As Range
    Set rng = Range("A1:A6")

    ''//Insert code to loop through rng here
End Sub
Run Code Online (Sandbox Code Playgroud)

我希望能够Range为每个指定的单元格迭代一组对象rng.从概念上讲,我想这样做:

For Each rngCell As Range in rng
     ''//Do something with rngCell
Next
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过手动解析rng.Address和构建Range对象来解决这个问题,但我希望有一种更直接的方法,不涉及字符串解析.

excel vba excel-vba

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

Excel函数在工作表数据上进行类似SQL的查询?

我在excel工作表中有一个较大的表:

Column_1 | Column_2 | Column_3

ValueA       ValueB     ValueC
....
Run Code Online (Sandbox Code Playgroud)

我需要的是一个函数,它将范围和类似SQL的查询字符串作为输入,并返回与查询匹配的行范围,例如:

=SQL_SELECT(A1:C1000, "SELECT * WHERE Column_1 = ValueH AND Column_3 = blah")
Run Code Online (Sandbox Code Playgroud)

这样的事情存在吗?或者什么是实现自己的最佳方式?

谢谢

sql excel vba function excel-vba

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

Excel日期从yyyymmdd转换为mm/dd/yyyy

我一直在寻找大约一个小时的Excel如何做到这一点.

我有一个从旧系统创建的Excel文件,我从SQL Server数据库中提取信息,我将把信息输回到SQL Server数据库,并希望日期匹配.

我尝试过创建一个自定义格式,但我不确定我是否正确地做了.我发现了几个地方,他们希望走另一条路mm/dd/yyyyyyyymmdd ,但他们都没有帮助.

我不熟悉在任何Microsoft产品中使用VBA,否则我确信这将是一个简单的任务.

我有两个需要更改的单独列.

如何将整列从(float)yyyymmdd格式化 为(Date)mm/dd/yyyy

excel vba excel-2007 excel-vba

54
推荐指数
4
解决办法
31万
查看次数

如何使用vba获取当前工作目录?

我正在使用MS Excel 2010并尝试使用以下代码获取当前目录,

    path = ActiveWorkbook.Path
Run Code Online (Sandbox Code Playgroud)

但ActiveWorkbook.Path返回空白.

excel vba

54
推荐指数
4
解决办法
24万
查看次数

如何从路径中提取文件名?

如何myfile.pdfC:\Documents\myfile.pdfVBA中提取文件名?

string vba

53
推荐指数
10
解决办法
27万
查看次数

如何查找数组是否包含字符串

可能重复:
如何在MS Access VBA阵列中搜索字符串

我目前正在研究一个Excel宏,我找不到一种方法 if array.contains(mystring)

我写了以下内容,它给了我"Invaild Qualifier"的信息,并在Mainfram之后突出显示If

Dim Mainfram(4) As String

Mainfram(0) = "apple"

Mainfram(1) = "pear"

Mainfram(2) = "orange"

Mainfram(3) = "fruit"

    For Each cel In Selection
        If Mainfram.Contains(cel.Text) Then
            Row(cel.Row).Style = "Accent1"
        End If
    Next cel
Run Code Online (Sandbox Code Playgroud)

选择是一列

有人帮吗?

嗨,JP我尝试了你的建议,并说它需要对象.并突出显示 If IsInArray(cell.Text,Mainfram)然后继承 我的完整代码

Sub changeRowColor()

Columns("B:B").Select

Dim cel As Excel.Range
Dim Mainfram(4) As String

Mainfram(0) = "apple"
Mainfram(1) = "pear"
Mainfram(2) = "orange"
Mainfram(3) = "Banana"

For Each cel In Selection
    If IsInArray(cell.Value, Mainfram) …
Run Code Online (Sandbox Code Playgroud)

arrays vba substring

53
推荐指数
3
解决办法
26万
查看次数

如何使用VBA将单元格格式更改为文本

我在Excel工作表中有一个"持续时间"列.它的单元格格式总是会改变 - 我希望将持续时间从几分钟转换为秒,但由于单元格格式化,它总是给我不同的答案.

我在想,在进行转换之前,我可以将该单元格格式转换为文本,以便将其视为文本值而不是尝试自动格式化.

目前我正在将所有数据复制到记事本中,然后将其保存回Excel工作表以删除所有以前的格式.有没有办法使用VBA自动将单元格的格式设置为文本?

excel vba excel-vba

52
推荐指数
3
解决办法
38万
查看次数

在VBA中逐行读取/解析文本文件

我正在尝试使用VBA解析文本文档并返回文本文件中给出的路径.
例如,文本文件看起来像:

*Blah blah instructions
*Blah blah instructions on line 2
G:\\Folder\...\data.xls
D:\\AnotherFolder\...\moredata.xls
Run Code Online (Sandbox Code Playgroud)

我希望VBA一次加载1行,如果它以a开头,*则移动到下一行(类似于被注释的那行).对于带有文件路径的行,我想将该路径写入单元格,例如A2第一条路径,B2下一条路径等.

我希望回答的主要内容是:
1.使用VBA读取文本文件的最佳/简单方法是什么?
2.我该如何逐行完成?

excel vba excel-vba

52
推荐指数
3
解决办法
34万
查看次数

51
推荐指数
4
解决办法
21万
查看次数

使用VBA清除即时窗口?

有谁知道如何使用VBA清除即时窗口?

虽然我总是可以手动清除它,但我很好奇是否有办法以编程方式执行此操作.

excel vba immediate-window excel-vba

51
推荐指数
6
解决办法
8万
查看次数