标签: excel-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日期从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将单元格格式更改为文本

我在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万
查看次数

使用VBA清除即时窗口?

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

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

excel vba immediate-window excel-vba

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

从VBA项目中删除密码

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

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

security excel vba excel-vba password-protection

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

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

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

excel vba excel-vba

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

如何根据列值在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万
查看次数

重复调用Chart.SetSourceData会给出错误1004

我在我公司的Excel 2003中创建的应用程序有问题.应用程序从源检索数据并使用SetSourceDataVBA例程更新图表,该例程传递包含写入相关数据的单元格的范围.

该应用程序在Office 2003中运行得很好,但是当在Office 2010中执行该应用程序时,它会出现以下错误:

运行时错误'1004':对象'_Chart'的方法'SetSourceData'失败.

For在Office 2010中的一个简单的Excel文件中创建了一个循环,并且根据Range中传递给Chart的列数,错误迟早会出现.在Range中传递的列越多,它就会越早出现.我想这必须与图表中的系列数量相关(更多列更多系列).

这是在Office 2010中实现的图表对象或系列中的某种机制/缓冲区,在Office 2003中不存在吗?For在Office 2003中运行时,相同的循环从不显示问题,我不知道如何解决此问题.

到目前为止,我只能删除所有使用Goto指令控制Error的系列,以使用For Each循环删除SeriesCollection中的所有系列,以选择Chart的SeriesCollection中的所有对象.如果我执行此操作并在再次传递Range时继续执行应用程序,则所有数据都会正确地绘制在图表对象中.

重现错误的示例.以下代码将放在新的Excel 2010工作簿中的VBA模块中.运行Sub setDataChart,应用程序将运行,直到显示错误消息.

    Sub setDataChart()
    Call createAColValues
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
    ActiveChart.SetSourceData Source:=Range("A1:FA6"), PlotBy:=xlColumns
    ActiveSheet.ChartObjects(1).Activate
    With ActiveChart.Parent
         .Height = 325
         .Width = 900
         .Top = 120
         .Left = 10
    End With
    Call updateValues
    Call sendData
End Sub

    Sub sendData()
    Dim cht As ChartObject
    Set cht = ActiveSheet.ChartObjects(1)

    'On Error GoTo delSeries:
    For i = 0 To …
Run Code Online (Sandbox Code Playgroud)

excel charts vba excel-vba

47
推荐指数
1
解决办法
3035
查看次数