我有一系列的档案:C:/archive1.zip,C:/archive2.zip等 我想从每个档案只提取一个文件。 每个档案具有相同的结构和文件可以在下面find: C:/archive1.zip/folderlevel1/folderlevel2/folderlevel3/Myfile.csv C:/archive2.zip/folderlevel1/folderlevel2/folderlevel3/Myfile.csv 等等 我怎样才能读取vba中的所有文件Myfile.csv? 谢谢!
无论如何,将excel VBA转换为Google Appscript,以便我可以在Google电子表格上使用它? 我需要下面的代码来转换 – Sub Test1() Application.ScreenUpdating = False Dim cell As Range, varFind As Variant With Sheets("Sheet1") For Each cell In Sheets("Sheet4").Columns(3).SpecialCells(2) Set varFind = .Columns(6).Find(What:=cell.Value, LookIn:=xlFormulas, LookAt:=xlWhole) If Not varFind Is Nothing Then .Cells(varFind.Row, 4).Value = cell.Offset(0, 2).Value Set varFind = Nothing Next cell End With Application.ScreenUpdating = True End Sub
我首先要说的是,我在Excel和VBA上的经验仅限于我在学校看到的。 我有编程经验,但在其他语言。 我每个星期都有一个文件。 这个文件的结构总是一样的:ID,名称,date,值在1和4之间,不相关的数据。 这个数据是通过“全部select”button(工作表的左上angular,MS Excel 2013中的单元格名称下方的小三angular形)select的,然后复制到另一个默认文件中,该文件可以重新处理数据以基于1-4值和date。 我的问题:如何检测数据何时被粘贴? 我已经尝试了Worksheet.Change事件,但粘贴命令(CTRL + V)不会触发Change事件。 另外,如何复制数据? 它会逐行更新行,逐个单元格(哪个方向),…? 我知道,只要能检测到复制命令,我就可以通过debugging来轻松find最后一个问题的答案,但是你永远不知道是否有人知道答案。 还有其他更简单(或更好)的方法来做到这一点? 如果需要,可以提供更多的数据和信息。 感谢您的帮助。 编辑:'…有/正在被复制? 更改为粘贴,因为它应该已经。
这个 Dim WB As Workbook Set WB = Workbooks.Open("foo\bar.xlsx", , True) Debug.Print (WB.Names("named_cell").Value) WB.Close (False) 回报 ='Sheet'!$C$377 而不是单元格C377中的值。 我怎样才能接收细胞的价值呢?
Word.Application对象公开.Activate方法。 另一方面, Excel.Application对象仅公开一个.ActivateMicrosoftApp方法,该方法执行一个显着不同的function来“激活这个特定的应用程序对象”。 为什么没有Excel.Application.Activate方法?
我正在尝试制作一个要求一天的Excelmacros,然后将其插入到下一个打开的单元格中。 这是我正在尝试使用的代码。 Sub Button7_Click() Dim AddName As String AddName = InputBox("Date: Month/Year", "Add Date", "01/00") Sheets("Sheet2").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Range("A1").Select Range("A1").Value = AddName End Sub 它将我input的那一天放到单元格A1中,不pipe它在哪里,然后selectA行中的下一个开放单元格。 我觉得答案很简单,但是我不明白!
我知道range().HasFormula只有当范围中的每个单元格都有公式range().HasFormula返回True,否则返回False或Null(混合时)。 但是没有像HasNumber这样的函数。 所以要检查一个范围只包含数字,我必须这样做 Dim all_numeric As Boolean all_numeric = True For Each cell In Range() If (Not IsNumeric(cell)) Or IsEmpty(cell) Then 'I also want to get rid of empty cell all_numeric = False Exit For End If Next cell 此外,还有WorksheetFunction.IsNumber类似的事情,但仍然需要通过范围循环。 如果范围包含大量数字,我不确定这是否会很慢。 我想知道是否有更好的方法来检查VBA中的范围对象的数值。
我试图在Excel中创build一个非常简单的VBA函数来计算特定的值(基于另一个单元格内容)并设置调用单元格的值和内部颜色。 我很喜欢这个价值计算,但它是内部着色,把我扔了一个循环。 我可以做以下设置文本和字体颜色: Function Test() Application.Caller.Font.ColorIndex = 3 Test = "Hello" End Function 但我宁愿设置细胞内部的颜色。 我已经尝试了下面代码的几个不同的迭代,但是这总是给我一个调用单元格的值错误。 Function Test() Application.Caller.Interior.ColorIndex = 3 Test = "Hello" End Function 无论如何,我已经看到一些其他的SOpost,谈论类似的变化(例如在这里 ),但他们的解决scheme似乎并没有为我工作。 我宁愿不使用条件格式,因为我想要的东西,我可以轻松地在不同的Excel文件之间传输。
我正在尝试编写一个Excel模块,它将代码dynamic地插入到在devise时创build的窗体中的新对象中。 我正在使用这个代码,其中“代码”包含一个string与应该进入DstrFiles对象的实际代码。 Dim DstrFiles As Object Set DstrFiles = ThisWorkbook.VBProject.VBComponents("DistributeFiles") With DstrFiles.CodeModule .InsertLines .CountOfLines + 1, Code End With 我的问题是,当我使用.InsertLines,McAfee从我的模块中删除整个代码,有没有办法解决这个问题? 首先我创build标签: Form1.Controls.Add("Forms.Label.1", "Label1", True) 然后,我使用.InsertLines创build一些代码去与标签。 例如,我想让标签的背景颜色在有人点击时变成红色。 用“.InsertLines”很容易完成。 解决这个问题的一个难得的方法就是事先在后台创build一堆代码,然后限制可能在运行中创build的标签数量。 – 我希望不会这样。 我一直在兜圈子,这似乎是迈克菲已知的问题。 有谁知道一种方法来创build一个dynamic的用户表单,可以添加代码添加到Contrls.Add方法的新标签或button?
在Excel 2007中,我在VBA中有以下非常简单的代码: Public Type specType sb As Long End Type Private Sub MyButton_Click() Dim spec As specType '… End Sub 当button被点击,我得到一个“用户定义的types没有定义”错误的“昏暗spec spec as specType”线…为什么? 我是否必须将用户定义的types移动到特定位置?