想在VBA的范围内做这个(其他用户没有其他的开发工具可以修改)。 我知道的第三方应用程序(例如iMacros),做类似的,但要尽可能通用。 该店使用XP和Excel 2003。 (1) VBA子程序正在控制InternetExplorer浏览器来自动查看网站,表单提交等。 (2)是否有方法从WebBrowser的内容获取屏幕截图? 没有凌乱的SendKeys方法? .NET有一个Webbrowser.DrawToBitmap方法,但找不到VBA的简单解决scheme。 想要整个屏幕,包括滚动条下方的“折叠下方”…
我有一个macros启用Excel工作簿,其中包含几个命名的工作表。 其中一个工作表被命名为“面板”,另一个工作表命名为“数据”。 名为“面板”的工作表有一个macros指定的button。 我想select名为“面板”的工作表上的button,并出现浏览文件窗口。 一旦用户在他们的硬盘上select了csv文件,我希望将csv文件的内容导入从单元格A1开始的名为“data”的工作表中。 问题1:已分配给button的vba导致csv文件的内容与button(“面板”工作表)放在同一工作表上。 我想把csv文件的内容放在“数据”表上。 问题2:另外,还有一串代码引用了我的硬盘驱动器和一个名为“capture.csv”的文件。 所以当macros启用Excel文件在另一台计算机上时,该文件崩溃。 任何方式来删除通路string,以便任何计算机可以使用该文件? 任何帮助解决这个问题将不胜感激。 分配给该button的macros如下所示: Sub load_csv() Dim fStr As String With Application.FileDialog(msoFileDialogFilePicker) .Show If .SelectedItems.Count = 0 Then MsgBox "Cancel Selected" End End If 'fStr is the file path and name of the file you selected. fStr = .SelectedItems(1) End With Range("A1").Select With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;C:\Users\laptop\Desktop\CAPTURE.csv", Destination:=Range("$A$1")) […]
以下是我到目前为止: Sub TrimColumnD() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets Dim c As Range For Each c In ActiveSheet.UsedRange.Columns("D").Cells c.Value = WorksheetFunction.Trim(c.Value) Next c Next ws End Sub 修剪function只适用于第一个工作表中的单元格,但就是这样。 有什么build议么? 提前致谢
我正在尝试调用另一个工作簿中的Excelmacros。 它是一个特定于表单的macros,但是Microsoft文档和Web上的研究只给出了一种通过工作簿访问macros的方法。 该语法是: Application.Run ("testworkbook.xls!macroname") 我需要做的是在那里也有一个表单引用,如: Application.Run ("testworkbook.xls!Sheet1.macroname") 我已经尝试了这个和许多其他的变化,包括在那里单引号或双引号,但我总是得到的消息,macros不能被发现。 编辑:随着所有的线索和大量的testing,我find了答案。 您可以访问特定于工作表的子工作站,但必须使用“工作表1”这样的规范名称,不能使用实际的工作表名称。 显然其他工作簿不访问该信息。 所以上面的格式工作,只要你不尝试使用sheetname(你可能必须单引号的工作簿名称(通过连接CHR(39)结束)。
我有一个工作表的名字作为一个string存储在一个variables中。 如何在这个工作表上执行一些操作? 我虽然我会做这样的事情: nameOfWorkSheet = "test" ActiveWorkbook.Worksheets(nameOfWorkSheet).someOperation() 我怎么做到这一点?
有没有可能在Excel中使用VBA查询SELECT ,所以我可以从Excel中查询PostgreSQL数据库? 如果可能的话请解释我如何连接到数据库。 我正在看谷歌,但没有find结果。
我应该使用什么标准来决定我是否像这样编写VBA代码: Set xmlDocument = New MSXML2.DOMDocument 或者像这样: Set xmlDocument = CreateObject("MSXML2.DOMDocument") ?
我最近开始在Excel中编写一些macros。 我有一个受保护的工作表,以及一些允许用户在电子表格的某个点添加/删除列/行的button。 我目前取消保护工作表,执行function,然后保护工作表。 问题是,受保护的表单密码是在纯文本中的任何好奇的眼睛看到的macros。 我如何在工作表上设置密码来保护它,但同时,允许我的macros在执行其function的同时解除电子表格的保护,然后重新保护它,而不必在macros中键入明文密码?
使用Excel(2010)VBA,我试图复制(传递)一个恒定范围的单元格(其值重新计算)到一个数组。 然后我试图将这个数组传递给它下面一个新的单元格区域。 在完成这个之后,我想再次将常量范围的新值复制(传递)到数组中,并将这些新值传递到之前传递的值的正下方。 我知道这个代码是非常残酷的(我是VBA中的数组的新手)。 Sub ARRAYER() Dim anARRAY(5) As Variant Number_of_Sims = 10 For i = 1 To Number_of_Sims anARRAY = Range("C4:G4") Range("C4").Select ActiveCell.Offset(Number_of_Sims, 0).Select ActiveCell = anARRAY Range("C4").Select Next End Sub 我当然感谢你的帮助! 谢谢。 尊敬, 乔纳森
我有一个从另一个数据库导入到excel的名称列表。 列表中感兴趣的名称以红色字体突出显示。 我想要一个方法来计算它,即约翰·史密斯在一列中出现5次总共5次中的3次,他的名字以红色字体突出显示。 所以我想看看他的名字有多less个实例是红色的。 我知道如何search他的名字的所有实例eg = COUNTIF(A1:A100,“John Smith”) 我也有帮助创build一个VB函数,通过使用这个函数计算工作表中的所有红色(= SumRed)值(一旦指定颜色索引): Function SumRed(MyRange As Range) SumRed = 0 For Each cell In MyRange If cell.Font.Color = 255 Then SumRed = SumRed + cell.Value End If Next cell End Function 我无法find一种方法来结合这两种计数条件。 任何帮助将非常感激!