首先,在VBA方面,我是一个完全的新手,但不幸的是我遗弃了这个代码,我不得不面对这个问题。 应用程序所做的是将信息复制到Excel xlsm文件中,并将其粘贴到XML文件中以供进一步处理。 事情是,这一切都非常顺利,直到我打在Excel单元格之一,即: 我有一个单元“研发”,当我把它传递给XML文件,我得到以下错误: Run-time error '91': Object variable or With block variable not set 请记住,我与VBA完全垃圾。 我尝试改变单元格中的“R && D”,“R & D”但没有骰子的内容。 我相信细胞的价值来自这一行代码: oCell.Offset(, 0).Value 但是我想要一些帮助,以便如何逃避&符号… 非常感谢提前,如果你需要更多的信息,让我知道。
Excel VBA新手在这里。 我只需要一个macros,它将刷新我正在查看的单张纸上的查询。 我已经有刷新macros,但我总是必须指定我想要刷新的工作表名称。 是否有可能在我正在查看的任何表单上运行macros? 以下是当前状态下的macros: Sub Refresh_Query() Sheets("Sheet1").Select Range("B6").Select Selection.QueryTable.Refresh BackgroundQuery:=False End Sub
我试图select一个报告filter,在这种情况下,加拿大。 这意味着其余的必须是隐形的。 这段代码没有问题: Public Sub FilterPivotTable() With ActiveSheet.PivotTables("Epidemiology").PivotFields("COUNTRY") .PivotItems("Canada").Visible = True .PivotItems("USA").Visible = False .PivotItems("Germany").Visible = False .PivotItems("France").Visible = False End With End Sub 然而,我正在试图为将其他国家添加到我们的“stream行病学”数据透视表中做准备,所以我尝试了一个for循环。 此代码不起作用: With ActiveSheet.PivotTables("Epidemiology").PivotFields("COUNTRY") .PivotItems("Canada").Visible = True For Each Pi In .PivotItems If Pi.Value = "CANADA" Then Pi.Visible = True Else Pi.Visible = False End If Next Pi End With 它给了我一个错误的Pi.Visible […]
有没有办法在Excel 2010中以编程方式对列或行进行分组/取消分组? 注意: “手动”命令在数据>大纲>组/取消组合 在excel 2003中,这用于工作: someSheet.columns(i).ShowDetail = True / False但它不再在2010年的组(仅适用于数据透视表和小计分组) 录制一个macros不会产生任何我可以使用的代码 更确切地说,在Excel 2010中调用myRange.ShowDetail = True可以展开折叠的组,但是如果该组已经展开,则会引发错误。 ShowDetail属性返回True,无论组是否展开。
我创build了一个应该添加(比方说100)新的工作表到我的Excel工作簿的macros。 这些新的工作表应该是这样命名的: 1% , 1.1% , 1.2% , 1.3% ,…, 9.9% , 10% 。 Sub AddWorkSheets() Dim i As Double For i = 0 To 10 Step 0.1 Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = i & "%" Next i End Sub 当我运行这个代码时,一切工作都很好 – 它添加了如上所述的新工作表。 但它只能工作到5.9% 。 在5.99999999工作表之后,所有其他人都得到了像5.99999999等等的名字。 有没有人有解释为什么会发生?
我现在会用Range,Cells或者类似的东西,用很多不同的方式来做同样的基本原理。 Range("A1", Range("A1").End(xlDown)).AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Range("IV1"), Unique:=True Dim myArr as Variant myArr = Range("IV1", Range("IV1").End(xlDown)) Columns("IV").Delete 有没有办法直接加载这些唯一的值到任何types的对象在VBA中,而不需要复制到另一个位置?
我有一些Access中的VBA代码,从Excel工作表中获取一系列单元格,然后将它们从一个数字转换为一个date。 例如,范围将是H1:Y25000 Public Sub FixDates(theRange as Range) Dim RangeCell as Range For Each RangeCell In theRange If IsNumeric(RangeCell.Value) And RangeCell.Value > 0 And Not IsEmpty(RangeCell.Value) Then lngDate = CLng(RangeCell.Value) RangeCell.Value = DateAdd("d", lngDate -1, "1/1/1968") End If Next RangeCell End Sub 代码似乎工作,但需要很长时间才能运行。 这可以写成不同的跑得快吗? 我正在阅读有关使用Variant而不是Range,但我无法弄清楚。 哦,给Sub打电话,我用的是: path = "C:\myfile.xlsx" Set xlApp = CreateObject("Excel.Application") Set xlWbk = […]
我是Excel VBA的初学者,非常感谢您的帮助。 请指教我如何创build一个通用函数来打开和数据库连接,另一个函数closures它,以避免重复编码? 这是我的代码。 我被困在如何继续… Const connection_string As String = "Provider=SQLOLEDB.1;Password=XXX;Persist Security `Info=True;User ID=sa;Initial Catalog=TESTDB;Data Source=XXXX;" Sub DuplicateDBConnection() 'Declare variables Set cn1 = New ADODB.Connection Set cmd1 = New ADODB.Command Set rs1 = New ADODB.Recordset 'Open Connection cn1.ConnectionString = connection_string cn1.Open 'Set and Excecute SQL Command Set cmd1.ActiveConnection = cn1 cmd1.CommandText = "Select stock_code, name, […]
在我的程序中,用户键入一个邮政编码,并获得与邮政编码(省,市,区)有关的输出信息。 为此,我使用Vlookup函数。 所以,用户: 在主表中键入一个邮政编码 程序在一个数据库(在另一张表)中search邮政编码与市,省,区相关的数据库。 当匹配时,将结果发送到主页面,用户只需input邮政编码就可以得到一个城市,省份,地区。 非常简单的过程。 我使用这个代码来做到这一点: If Range("J9").Value <> "N/A" Then 'if there is actually a zip code entered by the user (if not, it will be "N/A") cityZip = Application.WorksheetFunction.VLookup(sMain.Range("J9").Value, sZipCodes.Range("B2:E864"), 3, False) barangayZip = Application.WorksheetFunction.VLookup(sMain.Range("J9").Value, sZipCodes.Range("B2:E864"), 2, False) provinceZip = Application.WorksheetFunction.VLookup(sMain.Range("J9").Value, sZipCodes.Range("B2:E864"), 4, False) sMain.Range("J7").Value = provinceZip sMain.Range("J13").Value = cityZip sMain.Range("J16").Value […]
好吧,我有一个当前的工作簿(原始工作簿)与几个表。 我想打开一个现有的工作簿(Data Workbook)并复制“Data Workbook”表1中的所有内容,然后将所有内容粘贴到“Original Workbook”的Sheet“RRimport”中。 在这个过程结束时,我想closures“数据工作簿”到目前为止,我有下面的代码,但是它目前在我的原始工作簿的工作表名称“ARGimport”后面粘贴一个新工作表: Sub ImportData() Dim wb1 As Workbook Dim wb2 As Workbook Set wb1 = ActiveWorkbook FileToOpen = Application.GetOpenFilename _ (Title:="Please choose a Report to Parse", _ FileFilter:="Report Files *.xls (*.xls),") If FileToOpen = False Then MsgBox "No File Specified.", vbExclamation, "ERROR" Exit Sub Else Set wb2 = Workbooks.Open(Filename:=FileToOpen) For Each […]