Tag: vba

单元值在VBA中不显示

我正在尝试读取与VBA的Excel中的单元格值。 当我尝试阅读它时,我总是得到空。 这是代码片段 Private Sub CommandButton1_Click() Dim i As Long Dim j As Long i = 3 j = 4 Do While (Len(Trim(Sheet1.Cells(i, 16))) <> 0) Sheet2.Cells(4, j) = Sheet1.Cells(i, 16) j = j + 1 i = i + 1 Loop End Sub 但是dowhile总是会得到NULL并从循环中出来。 sheet1中的单元格中有值。 请帮我在这里。

如何使用,]表示符与表ListObject而不是“TableName”?

我正试图将录制的macros转换为通用的VBA脚本(我的第一个)。 录制的macros在代码如Sheet8和Table5中生成特定的名称。 我需要这些在代码中dynamic确定,到目前为止,我已经能够弄清楚了… 'This table name needs to be dynamically determined… Dim myTable As ListObject Set myTable = ActiveSheet.ListObjects.Add(xlSrcRange, myRng, , xlNo) 不过,我需要帮助搞清楚如何转换这些行… Range("Table5[[#Headers],[Column1]]").Select …到使用myTable ListObject的东西。 有任何想法吗? 谢谢!

如何将VBA中的非ASCII字符写入Excel工作表?

我在VBA中读取一个相当大的文本文件。 源文件包含来自国际会议的各种文本数据,并且我将这些数据的提取部分以有组织的格式重写为Excel表单。 我已经把例程的重要部分放在下面。 (我是一个原始的程序员,所以我使用原始的方法,抱歉我的不好的forms。 问题来自不是简单的ASCII字符的字符的位置。 文本文件包含各种条目,如“慕尼黑”。 当写入Excel文件时,文本被严重损坏。 在这种情况下,我得到“München”。 真烦人的是,我可以从文本文件复制文本,并将其粘贴到Excel中,没有问题。 但是手工logging太多了。 我真的希望原始(非ASCII)字符写在电子表格上! 我花了相当长的时间寻找一个解决scheme,我发现了两个相关的线程。 首先,在这里的第一个答案中描述了一个名为“binaryStream”的东西: Excel VBA – 导出为UTF-8它与我所要做的并不是非常接近,我无法弄清楚我需要的部分。 还有用VBA编码的保存文本文件UTF-8,它描述了如何将UTF-8数据写入文本文件。 差不多,但我想写一个Excel电子表格! 有什么build议吗? Sub ParseText() Dim myFile As String, Author1 As String, Author2 As String Dim dept As String, inst As String, country As String Dim title As String, LineText As String Dim nSourceFile As Integer, NewRecord As […]

MS Office自动化:macros运行时获取通知(事件)

我正在开发一个使用C#/ .NET的MS Office(Excel,Word,PowerPoint和Outlook)加载项,它跟踪和logging一些事件,当DocumentOpen,DocumentContentChange..etc发生时,但是经过几天的search,当macros在Excel工作簿,Word文档等上运行时,无法find方法(事件)来得到通知 困难的方法是尝试捕捉所有可能的path,用户可以使用鼠标和键盘挂接Win API来运行macros,它们是: 使用“macros”对话框(使用纯粹的Win API访问窗口): OnClick,如果这是ActiveWindow,并且“运行”button具有焦点,则读取文本框中“macros名称:”标签下的值,但是我发现这种方法是非常复杂的,因为有一些情况下,如:用户按ENTER键和焦点不在“运行”button或如果用户双击运行macros的macros列表中的项目.. 按下组合键:例如一个macros有一个Ctrl + F8键与之相关联。 点击一个形状(主要是excel):检查这个形状是否附有一个macros。 我可以看到这些方法非常有限。 你有更好的build议吗?

使用VBA更改数据透视表filter

我有一个数据透视表,其中包含“CoBdate”字段,如图所示。 我正在尝试创build一个macros,根据用户input自动更改date。 我写了下面的macros代码。 但是它显示了错误: 无法获取PivotTable类的PivotFields属性 谁能帮我这个? 注意:假定date格式不是问题 码: Sub My_macro() Dim num as String num = InputBox(Prompt:="Date", Title:="ENTER DATE") Sheets("Sheet1").PivotTables("PivotTable1") _ .PivotFields("CoB Date").CurrentPage = num End Sub

无法使用VBA从Power Pivot数据模型创build数据透视表

使用Excel 2013,我试图使用PivotTables.Add方法使用现有的Power Pivot模型在工作簿中创build数据透视表。 我的PivotCache似乎有问题。 这是我迄今为止所做的: Dim pc As PivotCache, i As Long ' i = 1 For Each pc In ActiveWorkbook.PivotCaches Range("a" & i).Value = pc.Index Range("b" & i).Value = pc.CommandText i = i + 1 Next 产生这个: 1 Model 2 Model 3 Model 但是,运行下面抛出一个运行时错误: Range("a1").Select ActiveSheet.PivotTables.Add _ PivotCache:=ActiveWorkBook.PivotCaches(1), _ TableDestination:=Range("A3") 错误是: Run-time Error '1004': […]

使用列表validation单元格:应用程序定义的错误或对象定义的错误

我正在使用下面的代码将validation列表添加到各个单元格。 我觉得这很简单,但是我在Formula1:="Notes!A1" & finalRowNotes行发现一个错误。 错误是 应用程序定义或对象定义的错误 我错过了什么? finalRowNotes = Worksheets("Notes").Cells(1000000, 1).End(xlUp).Row For i = 4 To r – 1 With Range("P" & i).Validation .Delete .Add Type:=xlValidateList, _ AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, _ Formula1:="=Notes!A1:A" & finalRowNotes .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True […]

在执行CalculateFullRebuild时调用未使用的UDF

我在Excel书中有一些用户定义的函数。 我用了一段时间,但过了一段时间,我从单元中删除了对这些函数的调用,因为我find了一个更好的方法来完成相同的任务(我没有在VBA编辑器中删除函数定义本身)。 所以,这些函数不再被书中和任何VBA代码调用,我使用search来检查它是100%确定的。 现在我正在对代码进行一些审查,并且发现了一些奇怪的事情:在同一工作簿(与这些函数无关)的Sub过程中,我调用了Application.CalculateFullRebuild 。 发生这种情况时,这些UDF被调用,我可以通过在UDF中设置一个中断点来看到它。 我想知道为什么会发生这种情况,为避免这种情况可以采取什么措施,因为这会不必要地减慢Sub的速度。 谢谢!

保持运行时错误VBA

我试图通过主login页面和第二个一次性密码(OTP)页面login到我的网站。 但我越来越和错误 运行时错误“-2147467259(80004005)”: 自动化错误 未指定的错误 发现在这一行: If InStr(wd.document.Title, "Sales Force Automation") <> 0 Then 我在这里做错了什么? 我刚刚从2天前开始学习这门语言。 Dim wd As SHDocVw.InternetExplorer Sub login() Dim username As Range Dim password As Range Dim otp As Range Dim myValue As Variant Set wd = CreateObject("InternetExplorer.Application") wd.silent = True wd.navigate "Http://www.XXXXXXXXXXX.com" wd.Visible = True Set username = Range("B1") Set […]

从macros观运行竞技场模型

我是工程学最后一年的学生,我的项目是build立一个舞台模型。 在最后一步,我想从excel激活竞技场。 我在Excel中创build了一个macros Sub ARENA_EXECUTE() m = Shell("""program_path"" ""model_path""", vbMaximizedFocus) End Sub 我在模型中创build了一个vba代码 Sub ModelLogic_DocumentOpen() Dim m As Model Set m = ThisDocument.Model m.Go End Sub 我可以打开这个模型,但是在第一次复制的时候出现了一些错误,这个消息出现了 警告:在评估REPLICATEexpression式时,在仿真时间0.0时产生警告。 您已尝试使用进程间通信(IPC),但是IPC未成功初始化。 您必须包含VBA或用户代码才能启用此function。 有关详细信息,请参阅Arena帮助的“高级选项”部分中的“实时function”和“用户编码的C / C ++”主题。 任何要发送的消息将被回显到屏幕上。 17131:IPCINI 你能帮我解决这个问题吗?