Tag: 全局variables

VBA全局variables,多个工作簿

我有一个VB应用程序,它使用一些全局variables来存储多个窗体和模块所需的数据,这工作正常。 但是,如果用户打开另一个工作簿,运行相同的VBA应用程序,则最终访问(和更改)相同的公共variables。 我怎样才能有工作簿级的全局variables,或者如果这是不可能的,什么是最好的方式来存储数据,所有forms和模块可访问,但只有在特定的工作簿? 这是一个VBA插件,全局variables是在一个标准模块中声明的。

excel 2010 vba循环通过声明的variabels语法结果编译错误variables未定义

我宣布了5个整数 Public Hol_1 as integer Public Hol_2 as integer Public Hol_3 as integer Public Hol_4 as integer Public Hol_5 as integer 想象一下,我有3个客户,那么我将使用Hol_1到Hol_3。 这也意味着:iClients = 3我需要做的第一件事是看我的床单(“假期”),以确定我的3个客户端有多less假期。 Sub CountHolidays() Dim i as integer Dim iclients as integer iclients = 3 For i=1 to iclients Hol_i = WorksheetFunction.CountA(ActiveWorkbook.Sheets("Holidays").Range(Cells(2, 3 + i), Cells(50, 3 + i))) 'The worksheetfunction calculates […]

Stata:从Excel导入时,以小写字母重命名variables

我正在尝试导入一个Excel表,其中包含具有大写和小写字母混合的variables名称。 我希望Stata阅读所有的小写,但是当我把case(lower)选项,Stata返回option case() not allowed 。 这是我试图把: import excel "/Users/p/D/B/File name/", sheet("Sheet1") firstrow case(lower) import命令工作正常,当我不使用case()选项。 有人能告诉我我做错了什么吗?

在VBA中使用Excel公式中的datevariables

我试图find两个date之间的日子。 例如在C2单元中,我有1/1/2014,在C3中有12/31/2014。 如果我在C4中使用DATEDIF公式,我会得到364天的正确答案。 不过,我试图在macros中只使用variables。 目前我有: Sub dates() Dim NumDays As Integer Dim StartDate, EndDate As Date StartDate = Cells(2, 3) EndDate = Cells(3, 3) Range("C4").FormulaR1C1 = "=DATEDIF('" & StartDate & "','" & EndDate & "',""d"")" End sub 这给了我错误:“运行时错误'1004':应用程序定义的或对象定义的错误” 任何想法如何我可以解决这个问题? 谢谢。

如何声明工作表名称为通配符?

我有一个名为“照片”的工作表,我想在我的代码中声明。 Const myWorksheet = "Photo Sheet" 我的问题,如果我有另一个名为“照片(2)”的表有没有办法将variables声明为通配符,将采取任何表格“照片Sheet *”开始?

VBA Excel全局数组没有保留值

我是新来的stackoverflow和目前真正需要帮助。 我打了几天的一系列string,我声明为公共或私人模块。 Public unitTypes(1 To 3, 1 To 4) As String 在我的第一个Sub中,我写了几个string到这个数组中。 Public Sub WriteBoxes() […] unitTypes(1, 1) = "Durchschnitt" unitTypes(2, 1) = "avg" unitTypes(1, 2) = "Maximum" unitTypes(2, 2) = "max" […] 如果我通过MsgBox在Sub的末尾testing它,所有的string仍然在数组中。 Public Sub DeleteData() […] MsgBox unitTypes(1, 2) […] 但是,如果我想读取在同一模块中的另一个子string中的任何string都将丢失,我只是有一个空(“”)数组。 有谁能告诉我我错过了什么? Daniel提前感谢您的帮助

VBA – 如何声明“单元格”variables

为可能非常容易回答的问题道歉。 我正在通过网站上的一些代码来搜寻如何search一行并将其粘贴到另一个工作表中,代码如下所示: Sub Test() For Each Cell In Sheets(1).Range("J:J") If Cell.Value = "131125" Then matchRow = Cell.Row Rows(matchRow & ":" & matchRow).Select Selection.Copy Sheets("Sheet2").Select ActiveSheet.Rows(matchRow).Select ActiveSheet.Paste Sheets("Sheet1").Select End If Next End Sub 我想知道应该宣布什么“单元格”,如下所示: Dim Cell As … 我知道,没有“Option Explicit”,这是不相关的,但我很好奇,所以请帮忙解释一下,如果可以的话。 提前谢谢你的帮助 :)

Excel VBA – 将variables设置为公式的值

无论如何,在VBA中设置一个variables的结果/值的forms。 我需要它来计算VBA中的结果,而不是在单元格中。 Variable1 = "=SUBTOTAL(3,INDIRECT('New Sheet 1'!A3:A4500))" Variable2 = "=SUMPRODUCT(–ISERR('New Sheet 1'!J3:J4000))" Variable3 = "=COUNTBLANK('New Sheet 1'!P2:P4000)" 我已经在这里看到使用'-marks'的一些问题。 提前致谢!

在VBA中通过string的值调用variables

我有一个泡菜,我似乎无法find一个解决scheme。 假设我在VBA中有下面的代码,基本上,无论函数Example作为string参数给出什么,都会调用与string参数同名的variables,并返回被调用的variables的值(如果我的解释有什么意义): Private EnterMenu, ExitMenu as String Function Example(name) Select Case name Case "EnterMenu" Example = EnterMenu Case "ExitMenu" Example = ExitMenu 'and so on End Select End Function 这很好,但是有没有一种方法,例如,每一个可能性都没有写一个案例 Function Example(name) Example=Value(name) End Function 所以它只是获取string“name”的值,获取具有相同名称的variables并返回该variables的值?

Excel VBA将variables设置为date之间的相等值

在Excel中使用VBA,我需要设置一个variables等于一个开始和结束date之间的所有date列表(类似于等于包含多个值的范围)。 捕获只是开始和结束date在一个范围内,而不是在两者之间的值。 在SQL Server中,我使用Sys.Columns表生成两个date之间的date列表,这些date实际上并不存储在该表中。 有没有办法在这里做类似的事情,而没有每个date之间的开始和结束date写在某个地方? 我GOOGLE了几个小时,没有find任何关于如何做到这一点。 我试图做的是有一个variables,我可以做一个For Each循环。 所以对于每一个date,我会检查它是否存在于另一个工作表中,如果它什么都不会发生,如果它不会被添加。 我试过了: Dim DatesInSettings As Date DatesInSettings = StartDate To EndDate For Each Date In DatesInSettings 'Insert commands here Next DatesInSetting 但这显然不是答案。 帮帮我?