Tag: vba

Excel VBA代码:x64版本编译错误(需要'PtrSafe'属性)

我正在使用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?”)下给出了一条线索,关于如何知道哪一个要修改。 […]

#if,#else,#end如果… VBA中的散列符号是什么意思?

我正在编写一些代码,用于检查是否可以从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 […]

ReDim保留了什么?

我在看别人的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) = […]

VBA方法'对象范围'_Worksheet在运行代码时突然出现失败?

此代码用于运行良好,然后突然开始失败的对象“_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, _ […]

Excel VBA调用来自另一个具有多个input,不同大小输出的子部分

我想在同一个模块里面调用另一个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 […]

popupExcel状态栏?

我正在开发一个需要很长时间才能运行的excel应用程序,所以最好有一个进度条popup来,并给出一些进度指示。 我正在看Excel中的Statusbar属性,它似乎涵盖了我所需要的,除了它不是很明显,即它是在左下angular的一个小小的通知,如果我没有想到我不会注意到我觉得很不满意。 有没有办法让状态栏popup一个新的MsgBox样式窗口类似于您可能期望在Windows上的文件传输? 实际显示在Excel表格中的进度条types对象并不理想,我正在寻找更好的解决scheme。 我在Windows上使用Office 2010。

Python – IronPython的困境

我开始学习Python,现在我非常喜欢它。 但是,如果你只是回答一些令我困扰的问题,而我却找不到明确的答案: 在语言兼容性方面,Python的C实现(来自python.org的主要版本)和IronPython之间有什么关系? 它是一样的语言,我通过学习一个,将能够顺利地跨过另一个,或者是Java到JavaScript? IronPython库的当前状态是什么? 它落后于CPython库多less钱? 我主要感兴趣的是numpy / scipy和f2py。 它们是否可用于IronPython? 从Python中访问VB的最好方法是什么?另一种方式是将Python的库连接到Excel的VBA上?

如何在Excel中使用VBA进行REST调用?

我试图按照这个例子: 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中使用VBA代码调用Web服务

我正在尝试在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 […]