Tag: vba

FileSystemObject.CreateFolder来创build目录和子目录

我想用下面的代码创build一个目录和一个子目录: Public fso As Scripting.FileSystemObject Set fso = New Scripting.FileSystemObject fso.CreateFolder ("C:\Users\<my_username>\DataEntry\logs") 我正在尝试创build嵌套的目录。 在这种情况下, DataEntry目录将不存在,所以本质上我想创build2个目录, DataEntry\logs在C:\Users\<username> 如果我input命令提示符,我可以使用mkdir创build该目录,没有任何问题。 但是,我根本无法获得VBA创build该文件夹,我得到: Run-time error '76': Path not found 我正在使用Excel VBA 2007/2010

在新的记事本中写入文本

任何一个人可以帮我写单元格值的记事本的新实例? 这是我试过的代码: Sub a() Dim nt As String nt = Shell("notepad.exe", vbNormalFocus) Print #1, ActiveSheet.Cells(1, 1).Value Close #1 End Sub

vba,getElementsByClassName,HTMLSource的双引号不见了

我用VBA刮了一些网站的乐趣,我用VBA作为工具。 我使用XMLHTTP和HTMLDocument(因为它比internetExplorer.Application更快)。 Public Sub XMLhtmlDocumentHTMLSourceScraper() Dim XMLHTTPReq As Object Dim htmlDoc As HTMLDocument Dim postURL As String postURL = "http://foodffs.tumblr.com/archive/2015/11" Set XMLHTTPReq = New MSXML2.XMLHTTP With XMLHTTPReq .Open "GET", postURL, False .Send End With Set htmlDoc = New HTMLDocument With htmlDoc .body.innerHTML = XMLHTTPReq.responseText End With i = 0 Set varTemp = htmlDoc.getElementsByClassName("post_glass post_micro_glass") For […]

高级过滤标准可以在VBA而不是范围?

在尝试通过VBA设置超过2个标准的正常自动过滤方式之后,我发现它必须通过高级filter来完成。 违规的例子: Worksheets(1).Range("A1").AutoFilter Field:=ColNum, Criteria1:="A*", Operator:=xlOr, Criteria2:="B*", Operator:=xlOr, Criteria3:="C*" 我希望将标准传递给PowerShell脚本中的函数(而不是macros)。 我有这一切工作正常,如预期的1标准,但现在我想3。 我想我可以写一个macros插入一个新的表格,写入条件,然后筛选新的范围,但我宁愿首先检查首选的方式。

函数检查string的az

我要 : 沿着特定的列H (从H4开始)循环,并且 对于沿着该列的每个单元格,调用一个函数来判断它是否为真(然后执行某些操作),或者是否出现错误(执行其他操作)。 我得到运行时错误***invalid use of property***对Call Isletter ***invalid use of property*** 。 Sub IfBlank() Dim Rng As Range Dim MyCell As Range Dim Isletter As Range Set Rng = Range("H4:H" & Cells(Rows.Count, "H").End(xlUp).Row) For Each MyCell In Rng Call Isletter If Isletter(MyCell.Value) = True Then 'do nothing End If If Isletter(MyCell.Value) = […]

在Excel 2010中隐藏MS VBA屏幕

我在一个办公室里工作,我们有许多业余的Excel“专家”,他们不断地尝试“改进”(即快捷方式,改变逻辑,重写“更快”)电子表格。 当我在一个非常规范的世界工作时,macros需要得到公司,客户和监pipe机构的批准,所以更改macros是非常重要的。 其中一个问题是,即使在我们设置了密码保护以将表单设置为只读之后,人们也能够进入代码,并且还可以在VBA属性屏幕中设置密码。 用户似乎可以绕过密码,进入主代码,没有设置密码。 还有什么可以阻止他们进入代码? 一个被提到的想法,但我找不到一个参考是阻止VBA屏幕打开。 可以这样做吗? 任何其他意见将受到感谢。

Excel VBA文本框时间validation为:mm

我正在开发一个VBA Excel用户窗体,需要input[h]:mm格式的时间。 这意味着小时可以是无限的,并且在23:59之后不会像hh:mm格式那样循环回0。 我search了networking无济于事。 这是我目前使用的代码: Private Sub Txtbx_TimeAvailable_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Me.Txtbx_TimeAvailable.Value <> Format(Me.Txtbx_TimeAvailable.Value, "[h]:mm") Then MsgBox "Please enter correct time format in hh:mm" Cancel = True Me.Txtbx_TimeAvailable.Value = vbNullString Else ThisWorkbook.Sheets(SELECTEDWORKSHEET).Range("C60").Value = Txtbx_TimeAvailable.Text Call UpdateDentistMainForm End If End Sub 但是,如果我使用这个代码,如果我input25:53它将它转换为01:53。 我很感激任何帮助,我可以得到这一点。

如何在VBA中结束一个while while循环

我想知道我的代码有什么问题,因为我无法在Microsoft Excel VBA中结束我的while循环。 如果下一行是空白,我希望结束这个while while循环。 Do While Cells(RowName, 1) <> "" Name = Cells(RowName, ColumnName) MsgBox Name RowName = RowName + 1 Loop 请赐教,因为我还是个初学者。 MsgBox保持popup状态,即使空白也不会结束。

在Windows上的Excel VBA中,对于parsing的JSONvariables,这个JScriptTypeInfo是什么?

在这里回答我自己的问题。 我已经在Excel VBA中使用JSON做了一些工作,并且发布了大量的调查结果,我将以问答格式来做这件事https://stackoverflow.com/help/self-answer http://blog.stackoverflow.com/2011 / 07 / ITS-OK-到问一答,你自己的问题/ 所以在stackoverflow的其他地方,你可以看到关于在VBA中parsingJSON的问题,但他们似乎错过了一两招。 首先,我使用自定义的JSONparsing库进行了重新设置,而改用ScriptControl的Eval方法作为我所有JSON代码的基础。 而且我们也expression了本地微软解决scheme的偏好。 这里是一个先前的问题在Windows的Excel VBA中,如何缓解由IDE的大小写行为破坏的parsingJSON的点语法遍历问题? 在这个问题上build立。 它显示了如何使用VBA.CallByName比使用点语法来遍历parsing的JSON对象更强大。 另外一个先前的问题在Windows上的Excel VBA中,如何通过parsing的JSON数组循环? 展示了它如何被用来访问数组元素。 但CallByName返回一个奇怪的variablestypes,它出现在监视窗口中作为Object / JScriptTypeInfo,并且如果在直接窗口中有一个types为Debug.Print(或hover在variables上),则获得无形的“[object Object]”。 在系列的另一个问题在Windows上的Excel VBA,如何获得string化的JSON respresentation而不是“[object object]”的parsingJSONvariables? 我提出了一些debugging“糖”,可以很好地检查variables。 在第四个问题在Windows Excel VBA中,如何获取JSON密钥以抢先“运行时错误'438':对象不支持此属性或方法”? ,同时调查如何查询成员的JSON对象,我发现hasOwnProperty()方法似乎附加到JScriptTypeInfo对象。 所以在这个问题中,我问,这究竟是什么JScriptTypeInfo吗? 这是系列5的问题5.这里是全系列 Q1 在Windows上的Excel VBA中,如何缓解IDE大小写行为破坏的parsingJSON的点语法遍历问题? Q2 在Windows上的Excel VBA中,如何通过parsing的JSON数组循环? Q3 在Windows上的Excel VBA中,如何获得string化的JSON表示而不是“[object object]”用于parsing的JSONvariables? Q4 在Windows Excel VBA中,如何获取JSON密钥以预先取得“运行时错误438”:对象不支持此属性或方法“? Q5 在Windows上的Excel VBA中,对于parsing的JSONvariables,这个JScriptTypeInfo究竟是什么?

何时需要在Excel VBA中显式指定工作簿和工作表?

我写的大部分Excel代码都相当简单 – 包含在一个工作簿中。 例如,我将在Sheet1模块中具有代码,它将简单地读取: Private Sub DoSomethingButton_Click() 'Run subroutine in Module1 DoSomething End Sub 然后Module1中的DoSomething子将执行我要在Sheet1上执行的操作。 当我在Sheet1引用单元格时,可以使用Cells(i, j)来表示我的内容,如果需要访问另一个表单上的内容,则只需使用Worksheets(i).Cells(j, k) 。 我的问题是,我是否应该一直明确指出我打算在哪张纸上工作? 如果我不这样做,我什么时候会陷入麻烦? 同样的道理:如果我只使用一个工作簿,是否需要指定ThisWorkbook ? 如果我正在使用多个工作簿,是否需要为所有工作表交互指定工作簿名称,还是仅仅更改活动工作簿/工作表,然后使用Cells(i, j)就足够了? 最后… Cells(i, j)和ActiveWorksheet.Cells(i, j)之间是否有区别?