Tag: vba

Excel工作簿打开事件macros并不总是运行

我有一个Workbook_Open事件macros(它在ThisWorkbook中)并不总是运行。 如果Excel已closures,并且双击Windows资源pipe理器中的.xls文件,它就会运行。 如果我从“开始”/“程序”(不带.xls文件)启动Excel,然后打开文件,它会运行。 如果我已经在Excel中打开文件,但是closures文件(保持Excel打开)并重新打开它,则macros不会运行。 我将安全设置设置为中等,并在打开时启用macros。 我需要做些什么来让macros在我打开的时候运行,而不仅仅是这个Excel会话的第一次呢? (顺便说一下,这是Excel 2003)

Excel VBA打开工作簿,执行操作,另存为,closures

这个问题已经被编辑,由于冗长的评论和提出的答案更新。 这里要求的是模块13; Sub SaveInFormat() Application.DisplayAlerts = False Workbooks.Application.ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\jammil\Desktop\AutoFinance\ProjectControl\Data\" & Format(Date, "yyyymm") & "DB" & ".xlsx", leFormat:=51 Application.DisplayAlerts = True End Sub 还有error handling的问题,我知道我错了,但我更有兴趣修复closuresfunction,在我进入它的那一刻。 这是需要一些工作的error handling代码 Sub test() Dim wk As String, yr As String, fname As String, fpath As String Dim owb As Workbook wk = ComboBox1.Value yr = ComboBox2.Value fname = […]

从SharePoint网站打开Excel文件

我正尝试使用VBA从SharePoint打开Excel文件。 由于我正在寻找的文件可能会不同,每次运行macros时,我想能够查看SharePoint文件夹并select我需要的文件。 当我想在networking驱动器上查找文件时,下面的代码工作正常,但是当我用SharePoint地址replace时,出现“运行时错误76:path未find”。 Sub Update_monthly_summary() Dim SummaryWB As Workbook Dim SummaryFileName As Variant ChDir "http://sharepoint/my/file/path" SummaryFileName = Application.GetOpenFilename("Excel-files,*.xls", _ 1, "Select monthly summary file", , False) If SummaryFileName = False Then Exit Sub Set SummaryWB = Workbooks.Open(SummaryFileName) End Sub 当我将这个地址粘贴到Windows资源pipe理器中时,我没有访问SharePoint文件夹的问题,所以我知道path是正确的。 为什么VBA不喜欢它?

需要Excel VBA运行时错误“424”对象

我在VBA和编程方面都是全新的,我试图从同一个工作簿的单元格中获取数据(获取框架path…),然后启动应用程序(QTP)并运行testing。 当我尝试获取在Excel单元格中input的值时出现此错误: Run Time Error '424' object required 我相信我错过了一些基本的规则,但我感谢你的帮助。 请参阅下面的代码部分: Option Explicit Private Sub RunTest_Click() Dim envFrmwrkPath As Range Dim ApplicationName As Range Dim TestIterationName As Range 'Dim wb As Workbook 'Dim Batch1 As Worksheets Dim objEnvVarXML, objfso, app As Object Dim i, Msgarea Set envFrmwrkPath = ActiveSheet.Range("D6").Value ' error displayed here Set ApplicationName = […]

Excel 2010macros在单元格范围内强制“F2”+“Enter”

希望有人能帮助! 我有一个Excel 2010工作表,其macros设置为从其他工作表将数据复制到另一个工作表上的特定格式以供其他工作使用。 我需要的数据复制好,但我有一个单元格范围格式的问题,其中包含date或时间值。 数据来源于数据库提取,一切都是文本格式。 在我的工作表中,当我(通过VBA代码程序)复制date时,我使用了我们需要的格式,date是"yyyy-mm-dd" ,时间是"hh:mm.ss.ss" 。 从来没有固定数量的行我们使用,所以我已经设置了VBA代码应用格式的单元格的范围,例如: AssDateLastRow = shAss.Range("C" & Rows.Count).End(xlUp).Row shAss.Range("C4:C" & AssDateLastRow).NumberFormat = "yyyy-mm-dd" 而这个工作好,迄今为止! 由于某些原因,虽然并非所有范围内的单元格都适用了正确的格式,但它们将显示为15/04/2014而不是15/04/2014 。 如果我去手动select单元格,然后按F2然后回车键格式显示为我所需要的。 这发生在整个范围内随机发生,可能有成千上万的行,所以拖动工作表手动按F2 + ENTER不可行。 我已经通过互联网上的帮助看了,发现我认为应该自动执行F2 + ENTER位与VBA编码,但它不工作,我不明白为什么(我是初学者在VBA!) 下面的代码粘贴到目前为止,它是从一大串代码中提取出来的,所以dim语句等等在实际的副本中进一步上升,但是这应该显示我迄今为止解决这个问题的方式。 Dim shAss As Worksheet Dim AssDateLastRow As Long Dim c As Range 'enter method to format 'Date Craftperson Assigned' and 'Time Craftperson Assigned' in Assignments […]

在macros运行期间保存撤消堆栈

我想知道是否有一种方法来保存macros运行后撤消操作的能力。 我不关心macros的结果 – 只需要撤消用户在macros之前完成的操作。 背景:在worksheet_change事件上有一个macroslogging谁在这个工作表上进行更改。 我不希望它限制用户撤消他/她的行为的能力。

如何引用另一个(打开或closures)工作簿,并在VBA中将值返回? – Excel 2007

基本上我需要从另一个工作簿(这是find的,可以打开一个用户窗体,因此位置和名称是可变的)收集公平的几个数字。 我需要为此使用VBA,因为我还需要使用此数据填充图表。 我宁愿不必打开其他工作簿,以便做到这一点,但如果它更容易,那么确定。 用户窗体完成,工作正常,我有我需要填充图表的代码,但是我不能让VBA从其他工作簿拉回数据,并将其分配给我需要的variables。 关于如何让VBA做到这一点的任何想法? 这将不胜感激。 谢谢, 抢。

Excel VBAcombobox标识

我在用户表单上有4个以上的combobox。 当他们开火时,他们发射同样的事件。 我试图做的是找出哪个combobox触发事件。 combobox是根据有多less个组件创build的。 生成combobox的代码如下所示: For j = 0 To UBound(ComponentList) – 1 'Set Label num = j + 1 Set control = UserForm1.Controls.Add("Forms.Label.1", "ComponentLabel" & CStr(num) & ":", True) With control .Caption = "Component " & CStr(num) .Left = 30 .Top = Height .Height = 20 .Width = 100 .Visible = True End With […]

如何在VBA中的单元格中填充颜色?

我想在电stream表中给单元格加上“#N / A”值。 为了做到这一点,我使用下面的macros: Sub ColorCells() Dim Data As Range Dim cell As Range Set currentsheet = ActiveWorkbook.Sheets("Comparison") Set Data = currentsheet.Range("A2:AW1048576") For Each cell In Data If cell.Value = "#N/A" Then cell.Interior.ColorIndex = 3 End If Next End Sub 但行If cell.Value = "#N/A" Then给出一个错误:types不匹配。 也许有人可以帮助理解错误在哪里? 谢谢

ReDim保留“下标超出范围”

我正试图将数据从2个双数组移动到2个不同的双数组。 我不确定尺寸是什么,因为我正在从第一个数组中取出一个随机样本,并把它放到第二个数组中。 当我添加ReDim保留线时,我得到下标超出范围错误。 Function CreateTrainingSet(TrainingPercent As Double, Inputs() As Double, Outputs() As Double) ' Create Randomized Training set data Dim TrainingInputs() As Double, TrainingOutputs() As Double Dim i As Integer, j As Integer, count As Integer 'ReDim TrainingInputs(UBound(Inputs, 1), UBound(Inputs, 2)) 'ReDim TrainingOutputs(UBound(Outputs, 1), UBound(Outputs, 2)) count = 0 ' Move TraningPercent % of data […]