我有这块代码,它可以帮助一个button识别它是哪一行。但是,当我隐藏上面的行,button引用该隐藏行。 例如:如果button位于第20行,并且隐藏第19行,则单击该button将返回第19行。如果我隐藏了第19行和第18行,则该button将返回第18行。 这真的很奇怪。 这是我用来创buildbutton的块: Sub AddButtons() Dim button As button Application.ScreenUpdating = False Dim st As Range Dim sauce As Integer For sauce = 10 To Range("F" & Rows.Count).End(xlUp).Row Step 1 Set st = ActiveSheet.Range(Cells(sauce, 11), Cells(sauce, 11)) Set button = ActiveSheet.Buttons.Add(st.Left, st.Top, st.Width, st.Height) With button .OnAction = "GoToIssue.GoToIssue" .Caption = "Go To Source" […]
在excel-vba中,你可以像下面这样创build一个variables数组: Dim x As Variant x = Range("A1:Z1").Value 这显然将.Value属性放入数组中。 我试图做同样的事情,但获得单元格的.Text属性,但我不认为这是可能的。 Dim x As Variant x = Range("A1:Z1").Text '// <~~ type mismatch 原因如下,我有这样一行数据: |——A——|——B——|——C——| 1| 01-Jan-2003 27-Feb-2005 15-Sep-2015 我想输出行到一个带有分隔符的文本文件,目前我正在使用这个: With WorksheetFunction x = .Transpose(.Transpose(Cells(1, 1).Resize(1, 3).Value)) End With Print #1, Join(x, "|") 哪些工作,但它得到.Value格式为dd / mm / yyyy所以输出如下所示: 01/01/2003|27/02/2005|15/09/2015 问:我可以保留使用此方法的格式,而不必先parsing/循环数组中的每个值?
我需要一个macros来过滤列A和B的值是相等的,或者是相同的,哪个差值是0。 通常情况下,我应用自动filter的单一范围,如下所示: ActiveSheet.Range("A2:AX2").AutoFilter Field:=Range("X" & 1).Column, Criteria1:=">0" 在这种情况下,我想匹配或比较2列,并应用AB=0时的filter 当然,我可以添加另一列是这两个之间的差异,但如果我可以,我宁愿避免它。 PS:稍后,我需要另外一个ABC=0滤波器,以防你的解决scheme适合这个。
长时间的观众,第一次的海报。 我有一个正确的右键单击function的窗体。 我试图添加一个子菜单到主右键菜单来分离一些function/命令。 我需要/想要插入“select案例”部分,但是,它只显示顶部菜单。 不知道从哪里去。 任何帮助都是极好的 谢谢 :) PS我会很乐意进一步解释,如果需要的话。 Sub fzCopyPaste(iItems As Integer) On Error Resume Next CommandBars("Custom").Delete Set PopBar = CommandBars.Add(Name:="Custom", Position:=msoBarPopup, MenuBar:=False, Temporary:=True) '在主Popbar上添加top_menu:这个很好 Set top_menu = PopBar.Controls.Add(Type:=msoControlButton) With top_menu '.FaceId = .Caption = "&Some Commands" End With 需要将下面的子菜单插入顶部菜单但没有显示:不起作用 Select Case iItems Case 1 ' Copy and Paste Set copy_button = top_menu.Controls.Add(Type:=msoControlButton) With […]
我正在用excel中的VBA方法挣扎。 我有一个CSV,需要根据产品的类别进行编辑。 csv看起来像这样: 我想要达到的结果是这样的: 这是我写的方法。 我觉得我很接近,但是还没有达到预期的效果。 Sub test() 'c is a CELL or a range Dim c As Range 'for each CELL in this range For Each c In Range("A2", Cells(Cells.SpecialCells(xlCellTypeLastCell).Row, 1)) 'Als de cel leeg is en de volgende niet dan If c = "" And c.Offset(1, 0) <> "" Then 'verplaats inhoud lege […]
我正在努力如何从Excel文件中使用VBA打开MS Access Runtime。 您可以使用CreateObject("Access.Application")打开Access的完整版本,但不会在运行系统中打开Access。 我们只在某些计算机上安装了Microsoft Access Runtime,因为我们需要使用我们开发的前端。 所以我们需要使用MS Access Runtime打开accdb文件,但是从Excel打开。 任何帮助表示赞赏,谢谢
我有一个Excel文件(xlsm),我想导出打印区域(全尺寸)作为图像(PNG或任何其他图片文件格式)。 我有一个VBAmacros,在Excel 2013中可以正常工作,但是由于我们使用Excel 2016,它只能导出一个空白图像。 Sub pic_save() Worksheets("Sheet1").Select Set Sheet = ActiveSheet output = C:\pic.png" zoom_coef = 100 / Sheet.Parent.Windows(1).Zoom Set area = Sheet.Range(Sheet.PageSetup.PrintArea) area.CopyPicture xlPrinter Set chartobj = Sheet.ChartObjects.Add(0, 0, area.Width * zoom_coef, area.Height * zoom_coef) chartobj.Chart.Paste chartobj.Chart.Export output, "png" chartobj.Delete End Sub
如果你运行下面的代码,你会得到一个非常有趣的结果(只有运行PowerPoint时,在运行之前closures所有的Excel实例): 'Optional – Include the "Microsoft Excel 16.0 Object Library" Option Explicit Public Sub test() Dim oslide As slide Set oslide = ActivePresentation.Slides.add(1, ppLayoutBlank) Dim oshape As Shape Set oshape = oslide.Shapes.AddOLEObject(30, 30, 50, 50, "Excel.Sheet") oshape.OLEFormat.Object.Sheets(1).ListObjects.add(1) 'xlSrcRange oshape.OLEFormat.Object.Sheets(1).Cells(1, 1) = "fewewq" oshape.OLEFormat.Object.Close End Sub embedded式对象已成功创build,表中存在指定的数据。 但是,当您单击embedded的对象时出现以下错误: 没有足够的内存可供阅读工作表。 不能再以任何其他方式访问该对象,并且对象的损坏特性在文档closures/打开时仍然存在并重新启动。 我已经validation过这个问题,除了我已经testing过的所有系统(PowerPoint / Excel 2016,Windows 7 X64)之外,都会发生。 […]
我必须在VBA中以用户forms显示柱形图。 将图表导出到GIF并导入到图片框中; 但我无法使用它,因为图表需要根据用户从同一表单中select的选项进行修改。 我一直在search,人们评论说可以使用MS提供的默认OLE / OCX控件。 我找不到一个可以做到这一点的ActiveX。 有人知道使用哪个控件以及如何使用它们?
我在Excel中的UserForm TreeView体内有一个TreeView 。 当从TreeViewselect一个节点时,一个ListBox被填充数据。 当双击ListBox的项目时,会显示一个单独的UserForm ,它允许用户填充内容。 一旦用户返回到TreeView UserForm ,我想要先前select的Node被突出显示。 问题是, UserForm基本上重置自己,我不知道如何select与VBA Node 。 我正在辩论我是否可以手动触发NodeClick事件,因为我尝试过的所有事情都失败了。 有小费吗?