我想添加一个子程序到一个VBAmacros,在Excel表格“LB Rack”中search一个值(“tag”),范围为B2:B200。 如果find标签,我希望它运行另一个子“InsertSVblock”。 如果没有find标签,我希望它输出一个Msgbox消息,并运行子“CheckforLBmatch(标签)”,其中search另一个工作表。 我的方法是在范围上执行VLOOKUP,并检查错误1004。 它正在工作中 – 如果找不到匹配项,则会输出错误消息,并运行“CheckforLBmatch(tag)”。 但是我怎么能得到它运行“InsertSVblock”,如果find一个匹配? 还是有更好的方法来做到这一点? Public Sub CheckforLBmatch(tag) Dim xlApp As excel.Application Dim xlbook As excel.Workbook Dim xlSht As excel.Worksheet Set xlApp = CreateObject("Excel.Application") Set xlbook = GetObject("C:\07509\LB_RACKTMC.xlsx") Set xlSht = xlbook.Sheets("LB RACK") Set LBrng = xlSht.Range("B2:B200") On Error GoTo ErrorHandler Debug.Print xlApp.WorksheetFunction.VLookup(tag, LBrng, 3, False) Exit Sub ErrorHandler: If […]
我想在Excel中实现一个多选的下拉列表,请参阅下面的图像 正如你所看到的,它是部分实现的,但由于它不直观,我想有一个checkbox来代替3个选项 – APR,LEASE和CASH存在的下拉列表。 在此先感谢任何能帮助我的人。
我在MacOS(Sierra)的Excel电子表格中运行VBA时遇到问题。 在Windows上,一切工作如预期。 我总是得到“编译错误隐藏模块:插值… 我试图删除模块的全部内容,这是剩下的: Function interpolate(x As Double, ran As Range) As String interpolate1 = 1 interpolate = interpolate1 End Function VBA代码是密码保护,我不使用任何ActiveX控件。 我使用的参考资料如下: Visual Basic的应用程序 Microsoft Excel 16.0对象库 OLE自动化 Microsoft Office 16.0对象库 Microsoft Forms 2.0对象库 RefEdit控件 如果有人对如何解决这个问题有什么build议,那就太好了。 谢谢,Tro
我试图运行一个macros在PC上完美的作品,但是当试图在Mac上运行相同的macros,我得到错误"1004" ; 其中说该文件不能被发现。 我正在写这样的地址: Workbooks.Open("\Macintosh HD\Usuarios\carlosstephan\Dropbox\SCEN Const.\GastosyPagosSCEN.xlsm") 有人知道如何写正确吗? 我已经用"/"而不是"\"来尝试,也没有效果。 popup同样的错误“with”: With Sheets("Gastos") .Range(“A8”, .Cells(.Rows.Count, .Columns.Count)).Clear End With 错误在哪里?
我知道这是一种常见的查询types,但是在主动search之后,我还没有find答案。 我也是一个新的VBA用户,请耐心等待。 我想将包含活动公式(范围A1:HW6000)的整个工作表(从HISTORY.XLSM中的AllDATA选项卡)从已closures的工作簿导入到活动工作簿中,但仅作为值粘贴到活动工作簿中。 更简单地说,想从closures的工作簿中复制一个表作为值(不是活的formuale)到活动工作表中。 我在Mac OS X上。 这是我一直在使用的代码(从活动工作簿运行代码)。 Sub GetRange() With Range("A1:HW6000") .Formula = "='C:\[HISTORY.xlsm]ALLDATA'!A1" .Value = .Value End With End Sub 此代码似乎导入格式,但不是实际粘贴到我的活动工作簿中的值。 有任何想法吗?
我在Excel中运行macros时出现问题(在Mac上为365版本)。 它在这部分失败: Dim LastRow2 As Long LastRow2 = Range("A65000").End(xlUp).Row Range("AV2").Select ActiveCell.FormulaR1C1 = _ "=IF(OR(AND(RC[-41]<>""ZZ"",RC[-27]=""I"",RC[-26]=""n"",RC[-40]<1),AND(RC[-41]<>""ZZ"",RC[-27]=""I"",RC[-26]=""n"",RC[-39]<1),AND(RC[-41]<>""ZZ"",RC[-27]=""I"",RC[-26]=""n"",RC[-38]<1),AND(RC[-41]<>""ZZ"",RC[-27]=""I"",RC[-26]=""n"",RC[-34]<1),AND(RC[-41]<>""ZZ"",RC[-27]=""I"",RC[-26]=""n"",RC[-33]<1),AND(RC[-41]<>""ZZ"",RC[-27]=""I"",RC[-26]=""n"",RC[-32]<1),AND(RC[" & _ "ZZ"",RC[-27]=""I"",RC[-26]=""n"",RC[-31]<1),AND(RC[-41]<>""ZZ"",RC[-27]=""I"",RC[-26]=""n"",RC[-30]<1),AND(RC[-41]<>""ZZ"",RC[-27]=""I"",RC[-26]=""n"",RC[-29]<1),AND(RC[-41]<>""ZZ"",RC[-27]=""I"",RC[-26]=""n"",RC[-28]<1)),""Error"",""Good"")" Selection.AutoFill Destination:=Range("AV2:AV" & LastRow2) 我无法弄清楚为什么…我没有看到有什么问题。 任何帮助,将不胜感激。
寻找是或否。 如果答案是否定的,那么在Mac上寻找一些想法来做同样的事情。 要注意 – 我看到在谷歌最后的post处理Office 2004,我在2016年,因为我希望能build立这个代码的mac用户:) 这是有问题的代码。 Set objClipboard = New MSForms.DataObject objClipboard.GetFromClipboard On Error Resume Next 'Turns Error checking off vClipArray = Split(objClipboard.GetText(1), vbCrLf) If Err.Number <> 0 Then 'Script will error if there is no copy, etc.. MsgBox "Bad Copy, Sorry" End End If On Error GoTo HandleErrors 'Turns Error Checking on
ThisWorkbook和opened_workbook什么opened_workbook ? 我只问,因为我正在浏览一些我的旧代码,我看到都被使用,我正试图清理这些代码。 据我所知, ThisWorkbook将始终规定脚本运行的工作簿,而opened_workbook是最前沿的工作簿? 我错了吗? 我不仅想知道我是对还是错,但是两者都应该使用,因为我觉得我应该使用ThisWorkbook而不是opened_workbook 。 在此先感谢,试图帮助我理解这里。
这是我在这个论坛的第一个问题..我在Excelmacros面临问题。 我有两个不同的工作簿。 我必须从第一个工作簿中select特定的值,并根据匹配将其复制到另一个工作簿中。 第一作业簿: coffee yes tea no coffee yes coffee no coffee no tea yes tea no tea yes tea no 第二工作簿: coffee milk tea coffee coffee milk coffee tea tea tea tea 结果文件 coffee yes milk yes tea no coffee yes coffee no milk yes coffee no tea yes tea no tea yes […]
我需要将电子表格转换为基本的XML格式。 电子表格如下所示: 我希望电子表格中的每一行在XML上看起来像这样: <item> <title>Directory Name</title> <address>Address, City, State</address> <phone>Phone</phone> <cell>Cell Phone</cell> </item> 有什么build议么? 更新:我读了几件事,并按@ Sancho.sbuild议的代码我已经使用了下面的macros: Sub xls2xml() Dim rng1 As Range, rng2 As Range, cl As Range Set rng1 = Range("A2") Set rng1 = Range(rng1, rng1.End(xlDown)) For Each cl In rng1 Call dump_xml_line(cl) Next cl End Sub Sub dump_xml_line(cl As Range) Dim n As […]