我正在使用Win8 x64 + Office 2013 x64。 我的问题: 我有一个Excel文件,其中有一些模块,并在Office(Excel)x86中完美地工作。 它使用瑞士的Ephemeris文件( swedll32.dll )做了很多天文计算。 但是,当我尝试在Excel x64上运行它时,尽快打开它,VBA编辑器启动并出现以下错误: Compile error: The code in this project must be updated for use on 64-bit systems. Please review and update Declare statements and then mark them with the PtrSafe attribute. 正如我上面所说,它只适用于32位办公室(Excel),但它不会在我的x64 Excel工作。但是,似乎有一个解决办法,但我太新手得到它。 然而,在VBA中,我不是很好,有几个网站提出,对于64位的办公室(Excel),我们应该修改(对于每个声明)代码类似的东西: 原始语句:私有声明函数 修改后的声明:私人声明PtrSafe函数 不幸的是,在每个地方添加“ PtrSafe ”之后,尽pipeVBA错误已经停止,但是这些值在单元格中没有正确显示/计算。 从微软的VBA的64位上看来,我们似乎也需要修改一些数据types,例如: 长→到→LongPtr LongPtr→至→LongLong 和一些“长”应该保持不变,取决于他们做什么。 这个网站(在“哪些Longs应该成为LongPtr?”)下给出了一条线索,关于如何知道哪一个要修改。 […]
我正在编写一些代码,用于检查是否可以从SharePoint检出文件,如果不是,请提醒用户并告诉他们文件正在被其他人使用,在使用中。 我在这个网站上遇到了一段代码: http : //www.xcelfiles.com/IsFileOpen.html#anchor_37 代码本身非常好,似乎在testing场景中工作,所以我打算适应它的目的,但我无法理解一些正在使用的语法,因为我从来没有见过它的喜欢。 #If Not VBA6 Then '// Xl97 For i = j – 1 To 1 Step -1 If Mid(strXl, i, 1) = Chr(0) Then Exit For Next i = i + 1 #Else '// Xl2000+ i = InStrRev(strXl, strFlag1, j) + Len(strFlag1) #End If 我明白代码的作用,但我不明白'#'符号的意义是什么? 其使用的另一个例子是: hdlFile = FreeFile Open […]
我在看别人的VBA的Excel代码。 他们在两个循环中执行ReDim Preserve dataMatrix(7, i) 。 这是做什么的? 另外,好像第二个循环刚刚覆盖第一个循环中的数据,这是正确的吗? Dim dataMatrix() As String Worksheets.Item("ETS").Select Do While Trim(Cells(r, 1)) <> "" Debug.Print "The line: ", Trim(Cells(r, 1)), r r = r + 1 dataMatrix(1, i) = Trim(Cells(r, 1)) ''file name dataMatrix(2, i) = Trim(Cells(r, 2)) ''sample type dataMatrix(3, i) = Trim(Cells(r, 3)) ''sample name dataMatrix(4, i) = […]
此代码用于运行良好,然后突然开始失败的对象“_Worksheet失败”的“方法”范围? “我不是VBA方面的专家,但是我可以自己解决这个问题。 有什么我失踪? Public Sub Run_Count_Click() '// Set Ranges Dim Cr_1, CR1_range, _ Cr_2, CR2_range, _ Cr_3, CR3_range, _ Cr_4, CR4_range, _ Cr_5, CR5_range _ As Range '// Set Integers Dim CR1, V1, CR1_Result, _ CR2, V2, CR2_Result, _ CR3, V3, CR3_Result, _ CR4, V4, CR4_Result, _ CR5, V5, CR5_Result, _ total_result, _ total_result2, _ […]
我想在同一个模块里面调用另一个sub的sub。 第一个子将是我的主代码,在那里我会打电话给第二个子程序。 第二个子程序接收多个input为整数,双精度,双精度数组和双精度matrix。 数组和matrix的大小是已知的,并存储在一个整型variables中。 该子也返回几个输出。 所以,我想要做这样的事情。 sub Main() Nc As integer Dim kij(1 To Nc, 1 To Nc), xi(1 to Nc), a1 As Double 'I assign values to my variables from the excelsheet eg Nc=Cells(1,1) etc. CalculateA(Nc,kij, xi, a1, a) Cells(5,5)=a end sub sub CalculateA(Nc as integer,kij as matrix double, xi as array double, a […]
我正在开发一个需要很长时间才能运行的excel应用程序,所以最好有一个进度条popup来,并给出一些进度指示。 我正在看Excel中的Statusbar属性,它似乎涵盖了我所需要的,除了它不是很明显,即它是在左下angular的一个小小的通知,如果我没有想到我不会注意到我觉得很不满意。 有没有办法让状态栏popup一个新的MsgBox样式窗口类似于您可能期望在Windows上的文件传输? 实际显示在Excel表格中的进度条types对象并不理想,我正在寻找更好的解决scheme。 我在Windows上使用Office 2010。
我开始学习Python,现在我非常喜欢它。 但是,如果你只是回答一些令我困扰的问题,而我却找不到明确的答案: 在语言兼容性方面,Python的C实现(来自python.org的主要版本)和IronPython之间有什么关系? 它是一样的语言,我通过学习一个,将能够顺利地跨过另一个,或者是Java到JavaScript? IronPython库的当前状态是什么? 它落后于CPython库多less钱? 我主要感兴趣的是numpy / scipy和f2py。 它们是否可用于IronPython? 从Python中访问VB的最好方法是什么?另一种方式是将Python的库连接到Excel的VBA上?
我试图按照这个例子: http : //libkod.info/officexml-CHP-9-SECT-5.shtml – Archive.org – Donate 但它给了这个错误 在这一行上: Dim objHTTP As New MSXML2.XMLHTTP 我试图使用这个例子: 我如何使用VBA从Excel发送HTTP POST请求到服务器? 但它给了这个错误: 在这一行上: Print objHTTP.Status 那么如何在VBA中进行POST REST调用呢? 如何在VBA中进行PUT多部分/表单数据file uploadREST调用? 工具>参考 码 Sub SendEmail() 'Dim objHTTP As New MSXML2.XMLHTTP 'Set objhttp = CreateObject("WinHttp.WinHttpRequest.5.1") Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP") URL = "http://localhost:8888/rest/mail/send" objHTTP.Open "POST", URL, False objHTTP.send ("{""key"":null,""from"":""me@me.com"",""to"":null,""cc"":null,""bcc"":null,""date"":null,""subject"":""My Subject"",""body"":null,""attachments"":null}") Print objHTTP.Status […]
我正在尝试在Excel 2010中编写一些可以使用Web服务的VBA代码。 我无法在互联网上find任何相关的资源。 有人可以告诉我如何做到这一点。
我在Microsoft Office Word 2003中有这个macros代码,它读取文本文件的行。 每行代表一个string值,我需要在代码中稍后使用。 但是,文本文件的前两行包含了一些我不需要的东西。 如何修改代码以便跳过两条第一行? 在Word中的VBA编辑器中的“智能感知”糟透了。 无论如何,代码看起来像这样 Dim sFileName As String Dim iFileNum As Integer Dim sBuf As String Dim Fields as String sFileName = "c:\fields.ini" ''//Does the file exist? If Len(Dir$(sFileName)) = 0 Then MsgBox ("Cannot find fields.ini") End If iFileNum = FreeFile() Open sFileName For Input As iFileNum Do While Not […]