Tag: excel vba

我怎样才能find最后一行,包含Excel表格中的数据与macros?

如何find包含特定列和特定工作表中数据的最后一行?

有没有办法破解Excel VBA项目的密码?

我被要求更新一些Excel 2003的macros,但VBA项目是密码保护,似乎缺乏文档…没有人知道密码。 有没有办法在VBA项目上删除或破解密码?

.text,.value和.value2有什么区别?

我没有要求任何脚本的帮助,但我的问题是澄清。 最近我在Excel中做了很多VB脚本,所以我在这个问题上是指Excel。 .text,.value和.value2有什么区别? 像什么时候应该使用target.text,target.value和target.value2? 我从来没有使用value2选项,但仍然想知道它用于什么。 有时如果我使用.text它给了我一个错误,当我只检查或操作单元格内的文本时,我需要使用.value。 然后有时当我想我应该使用.value我得到一个错误,我需要使用.text。 通常它会接受或不接受问题,但有时它会有所作为。 我知道必须有一些逻辑,但我似乎无法弄清楚。 我也发现,如果你只是把它作为目标,而不指定.text或.value,它将开始工作,但是那么有人做的事最终会导致脚本错误,所以最好总是使用一个.something 。 我想我所问的是,如果有人能给我一些指导方针,经验法则,如何正确使用每一个,什么时候需要使用。 感谢解释家伙。 我有点更好理解。 他们都是很好的解释。 下面是我的一些代码工作的一个小例子。 我认为这应该是target.text,但它会错误,所以当我使用target.value它的工作。 If LCase(Target.Value) = LCase("HLO") And Target.Column = 15 Then Target.Value = "Higher Level Outage" End If 我仍然有些困惑,因为当我想到价值或价值2时,特别是在你提供的答案之后,我认为他们只能用于数字。 然而,在我的例子中,我正在严格地谈论文本,这是我的脚本引用的很多东西(单元格中的文本,比数字更多)。

检测Excel工作簿是否已经打开

我通过编码打开了名为“myWork.XL”的MS Excel文件。 现在我想要一个可以告诉我它的状态的代码 – 不pipe它是否公开。 换句话说,如果我打开相同的文件,它应该告诉我,该文件已经打开。

在Excel中使用UDF来更新工作表

不是一个真正的问题,而是张贴这个评论,因为我不记得以前看到这种方法。 我回应了对先前答案的评论,并尝试了一些我以前没有尝试过的方式:结果很有意思,所以我尽pipe将其作为一个独立的问题发布,还有我自己的答案。 在SO(和许多其他论坛)上,有许多关于“我的用户定义的函数出了什么问题”的问题,答案是“你不能从UDF更新工作表” – 这里概述了这个限制: Excel中自定义函数的限制说明 有几种方法可以解决这个问题,例如https://sites.google.com/site/e90e50/excel-formula-to-change-the-value-of-another-cell ),但是我不要以为我的确切方法就是其中之一。 另请参阅: 更改来自UDF的单元格注释

Excel VBA,从一个不活动的工作表获取范围

当我查看“Temp”工作表时,此脚本正常工作。 但是,当我在另一个工作表中,则复制命令失败。它提供了一个“应用程序定义或对象定义的错误” Sheets("Temp").Range(Cells(1), Cells(1).End(xlDown)).Copy Sheets("Overview").Range("C40").PasteSpecial 我可以使用这个脚本,但是我有粘贴它的问题 Sheets("Temp").Columns(1).Copy Sheets("Overview").Range("C40").PasteSpecial 我不想激活“温度”表来得到这个 我还可以做些什么

如何在excel中使用特定单词复制一行并粘贴到另一个excel表单中?

我检查了一堆不同的post,似乎无法find确切的代码,我正在寻找。 此外,我从来没有使用VBA之前,所以我试图从其他职位的代码,并input我的信息,以使其工作。 没有运气呢。 在工作中,我们在Excel中有一个工资单系统。 我试图search我的名字"Clarke, Matthew" ,然后复制该行,并将其粘贴到我保存在我的桌面上的工作簿"Total hours" 。

当VBA代码运行时,MS Excel崩溃

我在excel表单上运行VBA代码时遇到了excel崩溃的问题。 我有一些代码添加一个公式的一个单元格范围如下: Private Sub Worksheet_Change(ByVal Target As Range) Worksheets("testpage").Range("A1:A8").Formula = "=B1+C1" End Sub 当这个代码运行时,我收到一条消息,说“ Excel遇到问题,需要closures ”,Excelclosures。 如果我运行worksheet_active()类中的代码,它工作正常,不会崩溃 Private Sub Worksheet_Activate() Worksheets("testpage").Range("A1:A8").Formula = "=B1+C1" End Sub 但我真的需要它在worksheet_change()类中工作。 有没有人在使用worksheet_change()类时遇到类似的崩溃问题,任何人都可以指出正确的方向来解决这个问题?

使用VBA循环浏览文件夹中的文件?

我想在Excel 2010中使用vba循环查看目录的文件。 在循环中,我将需要 文件名和 文件被格式化的date。 我已经编码以下工作正常,如果该文件夹没有更多的50个文件,否则它是可笑的慢(我需要它与> 10000文件的文件夹)。 这个代码的唯一问题是查找file.name的操作需要非常多的时间。 代码工作,但waaaaaay太慢(每100个文件15秒): Sub LoopThroughFiles() Dim MyObj As Object, MySource As Object, file As Variant Set MySource = MyObj.GetFolder("c:\testfolder\") For Each file In MySource.Files If InStr(file.name, "test") > 0 Then MsgBox "found" Exit Sub End If Next file End Sub 问题解决了: 我的问题已经通过下面的解决scheme使用Dir以特定方式解决(15000个文件为20秒),并使用命令FileDateTime检查时间戳。 考虑到从20秒以下的另一个答案减less到不到1秒。

如何在Microsoft Excel中使用正则expression式(正则expression式)在单元格内和循环中

如何在Excel中使用正则expression式并利用Excel的强大网格(如设置数据操作)? 在单元格函数返回匹配的模式或replacestring中的值。 Sub循环访问一列数据并提取与相邻单元格的匹配。 什么设置是必要的? 什么是Excel正则expression式的特殊字符? 我知道正则expression式在许多情况下( 使用或不使用正则expression式? )并不理想,因为excel可以使用Left , Mid , Right , Instrtypes命令进行类似的操作。