我一直在试图用类模块来开发macros,但是与UDT相比,get / let似乎需要很长时间。 我真的对这是为什么感兴趣,任何人都可以解释这一点? 我只find讨论function/子执行,这似乎是一样快。 目前的问题是设置一个属性,这需要大约3000毫秒的类(200万)和120毫秒使用UDT做同样的事情。 我试图决定是否应该build议macros开发人员在需要获取或设置很多属性时避免使用类模块。 只使用这个数据我应该,但也许你有不同的见解。 我想明白为什么这么慢。 也许我只是做错了什么。 示例代码: Public Type Participant Name As String Gender As Integer End Type Public Declare Function GetTickCount Lib "kernel32.dll" () As Long Sub TimeUDT() Dim i As Long Dim startMs As Long startMs = GetTickCount Dim participants(1 To 1000000) As Participant For i = 1 To […]
我知道我的“问题”看起来很奇怪,但我希望我能解释我的意思,我希望你们能帮助我。 我得到了一个没有任何错误的Excel VBA代码。 我从一个文件复制到另一个文件。 我遇到的问题是我可以看到Excel如何在源文件和目标文件之间切换(如闪烁)。 我希望macros从源文件复制粘贴到目标文件之间切换(我不想闪烁) 所以在这里我得到了我的Excel VBA代码。 我设置了一个Button来运行2个macros。 第一个macros是一个openfiledialog,我可以select要打开的文件。 这是必需的,因为所需的文件总是有不同的名称,并在不同的path。 我没有向你展示macros,因为它与我想要问的不相关。 打开文件后,我的第二个macros开始(CopyPasteValues),我在下面发布。 起初,我设定我的源和目标工作簿/工作表,并创build一个16个帐号的数组。 然后我使用find方法在每个文件(源和目标)中search帐号。 find方法的结果用于在src文件中创build偏移量,并将其复制到目标文件中的偏移量。 如前所述。 macros运行平稳无误。 我只是不想切换(闪烁效果)。 我尝试了很多东西,似乎我找不到解决scheme。 这就是为什么我想:互联网做你的事情。 我真的希望你们能帮助我。 Sub CopyPasteValues() Dim srcWb As Workbook 'source Wb Dim srcWs As Worksheet 'source Ws Dim trgWb As Workbook 'target Wb Dim trgWs As Worksheet 'target Ws Set trgWb = ActiveWorkbook Set trgWs = […]
突然我的Excel文件在启动时产生了很多错误。 由于在错误发生之前没有对文件进行更改。 错误示例: 错误438: Sheets("setup2").CheckBox4.Caption = "Lägg automatiskt till " & _ Sheets("setup2").Range("L8").Value & " måndag efter jour." 错误32809: Worksheets(1).Visible = True Worksheets(1).Cells(42, 3) = ActiveWorkbook.Path Sheets("setup").Cells(43, 3) = Environ("UserName") Worksheets(1).Cells(35, 13) = MostRecentDate 工作簿不受密码保护。 它是Office 2013(15.0.4659.1000)MSO(15.0.4659.1001)
我有我的代码如下,奇怪的是Errorhandler过程仍在执行,即使代码中没有错误…有什么问题? 在没有任何error handling程序的情况下运行代码不会生成任何错误,但是当包含error handling语句时,仍然会显示Errorhandler下的msgbox ! 码 Public Sub ExportGraphs(Optional PivotExport As Boolean) ' Exports only graphs on the "Mainwindow" sheet to a new worksheet Dim wsh As Worksheet: Set wsh = Sheets.Add Dim source_sht As Worksheet: Set source_sht = Sheets("Mainwindow") ActiveWindow.Zoom = 70 On Error GoTo Errorhandler With wsh If source_sht.OLEObjects("Btn_CurrentTime").Object.Value = True Then .Name […]
我刚写完一个自动生成报告的漂亮的macros。 它运作良好,但我需要它根据两个单元格中的数据自动命名电子表格。 本质上,这个macros创build一个新的电子表格,将信息复制到它,并创build每月所需的相关数据透视表。 作为其中的一部分,我创build了一个仪表板,用于生成包含指令和date范围的报告。 目前它创build电子表格“ 新报告 ”。 有没有办法自动创build新的电子表格并将其命名为“Report 01.01.15 to 01.02.15”? 我有两个单独的单元格的date范围,我知道我将不得不确保date范围是一个将使用允许的字符(IE 01.01.15而不是01/01/15) – 是我正确地说有一种告诉用户他们已经把date与不正确的分隔符的方式?
是否可以使用Excel或VBA在单元格/列中设置numberformat,以便: 如果我input一个公式(任何以=开头的东西),Excel将计算公式(而不是仅仅将其解释为文本) 如果我input一个值,例如5.80,Excel将它存储为文本? 我有一个问题,我希望所有的用户input被存储为文本,但用户也应该能够input公式。 如果我将数字格式设置为文本,公式不解释。 如果我将数字格式设置为常规,则数值将以数字forms存储。
我有一个VBAmacros,它将数据写入已清除的工作表,但速度很慢! 我正在从Project Professional实例化Excel。 Set xlApp = New Excel.Application xlApp.ScreenUpdating = False Dim NewBook As Excel.WorkBook Dim ws As Excel.Worksheet Set NewBook = xlApp.Workbooks.Add() With NewBook .Title = "SomeData" Set ws = NewBook.Worksheets.Add() ws.Name = "SomeData" End With xlApp.Calculation = xlCalculationManual 'I am setting this to manual here RowNumber=2 Some random foreach cycle ws.Cells(RowNumber, 1).Value = […]
我用这个代码来创build100000个数字(12位唯一的随机数字) Sub uniqueramdom() Const strCharacters As String = "0123456789" Dim cllAlphaNums As Collection Dim arrUnqAlphaNums(1 To 60000) As String Dim varElement As Variant Dim strAlphaNum As String Dim AlphaNumIndex As Long Dim lUbound As Long Dim lNumChars As Long Dim i As Long Set cllAlphaNums = New Collection lUbound = UBound(arrUnqAlphaNums) lNumChars = Len(strCharacters) On […]
我正在使用下面的代码(工作表3代码)的第二部分突出显示返回“范围object_global失败”的代码。 会使用相同的命名范围,但在不同的工作表上,因为我已经做了下面这样做? Worksheets(2).Range("LTSDI").AutoFill Destination:=Range("LTSDI:LTEDI"), Type:=xlFillDefault Worksheets(3).Range("LTSDI").AutoFill Destination:=Range("LTSDI:LTEDI"), Type:=xlFillDefault 感谢您的任何反馈!
Private Sub Workbook_Open() Dim WB As Workbook Set WB = ActiveWorkbook WB.Sheets("Automation").Range("U23:W467").Select Selection.ClearContents End Sub 从我可以从中收集,这个代码应该自动清除这些单元格中的内容,当我打开工作簿。 但是,它不。 当我进入代码一切工作正常,细胞被清除。 任何帮助表示赞赏!