Tag: vba

使用VBAclosuresExcel应用程序

我用了以下没有成功。 活跃的工作簿确实是closures的,但是excel窗口仍然打开。 Application.ActiveWindow.Close SaveChanges:=False ActiveWorkbook.Close SaveChanges:=False 哪个是终止应用程序的命令? 编辑 多说一点:在工作簿打开事件我运行一个macros。 我想在macros完成时终止应用程序。 我也尝试过,没有成功。 Private Sub Workbook_Open() Macro_MyJob Application.Quit End Sub 我应该把这个Application.Quit命令放在哪里?

错误:“找不到可安装的ISAM”

我已经在Excel工作簿中编写了一些VBA代码,以便从桌面上同一目录中的Access数据库中检索数据。 它可以在我的机器和其他运行Windows XP的机器上正常工作,但是当我们在Vista机器上testing时,我们遇到了以下错误: 找不到可安装的ISAM 我在网上做了一堆search,但似乎无法find具体的答案。 连接string似乎很好,正如我所提到的,它可以在多台机器上运行。 有没有人有任何想法可能造成这种情况? 我的连接string如下所示: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\ptdb\Program Tracking Database.mdb; 谢谢

如何将2D Excel表格“拼合”或“折叠”为1D?

我有一个与国家和Excel年的二维表。 例如。 1961 1962 1963 1964 USA axgy France ueha Germany oxnp 我想“扁平化”它,这样,我在第一列中有国家,在第二列中有一年,然后在第三列中有价值。 例如。 Country Year Value USA 1961 a USA 1962 x USA 1963 g USA 1964 y France 1961 u … 我在这里展示的例子只是一个3×4的matrix,但是我拥有的真实数据集要大得多(大约是50×40左右)。 任何build议如何使用Excel可以做到这一点?

用VBA循环过滤列表最简单的方法是什么?

如果我在Excel中设置了一个自动filter,并且我想用VBA代码遍历一列中的所有可见数据,那么最简单的方法是什么? 所有已被过滤掉的隐藏行都不应该包含在内,所以从上到下的简单范围不会有帮助。 任何好主意? 谢谢。

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

你可以让我知道Excel VBA中的.NumberFormat格式选项是什么? 如您所知,Excel 2010支持以下types: 我知道我们可以设置例如文本types为: .NumberFormat ="@" 或数字: .NumberFormat = "0.00000" 你可以让我知道什么是VBAtypes的其他选项?

VBA(Excel)无循环初始化整个数组

我对VBA相当陌生,所以这可能是一个简单的问题,但是这里有。 我想在VBA中初始化整数数组myArray ,比如整数。 我知道我可以通过一个简单的初始化来做到这一点: Dim myArray myArray = Array(1, 2, 4, 8) 但是,如果数组很大,这是很麻烦的,我想初始化所有元素到相同的值。 理想情况下,这将是这样的: myArray(:) = 0 我试过,但编译器抱怨。 然后我尝试myArray() = 0 ,它也抱怨。 任何人都可以解释如何做到这一点, 没有循环 ? 如果可能,我想在一个声明中这样做。 澄清 : 我想初始化数组中的每个元素到一些初始值。 所以,如果我有一个数组Dim myArray(300) As Integer 300整数的整数,例如,所有300个元素将保持相同的初始值(比如13)。 更澄清 我发现这个答案 ,说你可以这样做一个variables: Dim x As Double: x = 0 也许有一种方法稍微更新语法,使其适用于数组?

“错误转到0”和“错误转到-1”之间的区别 – VBA

任何人都可以在VBA中find'On error goto -1'和'error goto 0'之间的区别? 我试过谷歌和MSDN,但我没有运气。

VBAmacros定时器样式运行代码每个集合的秒数,即120秒

我需要每120秒运行一段代码。 我正在寻找一个简单的方法来在VBA中做到这一点。 我知道有可能从Auto_Open事件中获取定时器的值,以防止使用一个幻数,但是我不太可能知道如何触发一个定时器,让它每120秒运行一次。 如果我可以避免的话,我真的不想用睡眠的无限循环。 编辑 : 基于提供的答案的交叉post是: Excel VBA Application.OnTime。 我认为使用这个想法是一个糟糕的主意吗?

在Excel VBA中删除一行

我有这段代码,它从列表中find一个项目的excel行并删除列表中的项目。 我想要的是删除Excel行。 代码在这里 Private Sub imperecheaza_Click() Dim ws As Worksheet Dim Rand As Long Set ws = Worksheets("BD_IR") Rand = 3 Do While ws.Cells(Rand, 4).Value <> "" And Rand < 65000 If ws.Cells(Rand, 4).Value = gksluri.Value * 1 And ws.Cells(Rand, 5).Value = gksluri.List(gksluri.ListIndex, 1) * 1 Then ws.Range(Rand, 1).EntireRow.Delete '(here I want to delete the […]

从中调用函数的Excel单元格

我怎样才能得到我的VBA函数被调用的单元格? 换句话说,对于INDIRECT(ROW(),COLUMN()),什么是VBA等价物? 我不是在寻找ActiveCell 。 我想要做的是有一个简单的函数ThisRow_Col(rColumn As String)返回它所调用的行的列X. 在B2中说我呼叫= ThisRow_Col(“A”),它应该返回A2的值。 这应该工作,不pipe哪个单元格活动。 编辑 :感谢查尔斯的答案: 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 请注意,将列传递为Range( ThisRow_Col(A1) )比将其作为string传递更好,因为如果移动或插入列,Excel可以自动更新公式。 当然A1的1行只是一个约定。