#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 […]

excel电子邮件validation公式

我有一个人们手动input电子邮件地址的专栏。 我想使用这个公式validation电子邮件地址: =AND(FIND(“@”,A2),FIND(“.”,A2),ISERROR(FIND(” “,A2))) 但excel出现错误,您input的公式包含错误。 对我来说公式看起来是正确的。 你们有什么build议吗?

Excel加载项 – ClickOnce – VSTOInstaller.exe.config文件是什么?

编辑:看起来像一个微软的问题,看论坛正确的答案。 编辑2:我要停止监测这个页面,看起来像微软论坛已经死了,我也不再为同一家公司工作。 我们有一个支持Excel 2007/2010/2013的Excel加载项(C#/ .NET 4.0),并通过Excel加载项进行部署。 今天,一位新客户在一台机器上遇到问题(其他机器正确安装了加载项)。 错误是: 属性“type”的值不能被parsing。 错误是:无法加载文件或程序集“Microsoft.Office.BusinessApplications.Fba,版本= 14.0.0.0,文化=中立,PublicKeyToken = 71e9bce111e9429c”或其依赖之一。 该系统找不到指定的文件。 (C:\ Program Files(x86)\ Common Files \ Microsoft Shared \ VSTO \ 10.0 \ VSTOInstaller.exe.Config第10行) 我的朋友Google给了我很多build议:我们让客户端尝试修复MS VSTO Tools for Office和修复Office,并清除IEcaching,但仍然得到相同的错误。 最后,我们尝试重新命名VSTOInstaller。 exe。configuration从安装“隐藏”,它似乎工作。 我不相信我们的加载项或安装产生这个文件,并且我没有依赖这个文件,我知道(它似乎与SharePoint程序集有关) 虽然我没有明确地下载加载项(我通过VS2013运行),但是我有一个VSTOInstaller.config文件(注意,不是* .exe.config,从客户端看)包含以下XML: <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.net> <webRequestModules> <remove prefix="http:"/> <remove prefix="https:"/> <add prefix="http:" type="Microsoft.Office.BusinessApplications.Runtime.DeploymentAction.HttpFbaRequestCreator,Microsoft.Office.BusinessApplications.Runtime,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" /> <add prefix="https:" […]

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, _ […]

用OpenXml sdk 2.0创buildExcel文档

我已经使用OpenXml SDK 2.0创build了一个Excel文档,现在我必须devise它,但是我不能。 我不知道如何绘制背景颜色或更改不同单元格中的字体大小。 我创build一个单元格的代码是: private static Cell CreateTextCell(string header, string text, UInt32Value index) { Cell c = new Cell(); c.DataType = CellValues.InlineString; c.CellReference = header + index; InlineString inlineString = new InlineString(); DocumentFormat.OpenXml.Spreadsheet.Text t = new DocumentFormat.OpenXml.Spreadsheet.Text(); t.Text = text; inlineString.AppendChild(t); c.AppendChild(inlineString); return c; }

VSTO:在主Excel线程上调用

我有一个Excel工作表上的button,启动一个新的线程做一些处理。 如果我想对Excel进行任何更改(例如使用Worksheet.Range("A1").Value = "info"; )将数据写入单元格,我想我必须使用主UI线程。 如何才能做到这一点? 通常在Winforms中,我将在控件上调用Invoke ,但Excel.Application或Worksheet或Range对象没有Invoke方法。

数据透视表列表中的已过时项目

在我的数据透视表中,当我使用行标签过滤数据时,它显示checkbox列表,您可以在其中select要包含的一个或多个或全部项目,此列表包含不再存在的项目。 或者,如果您转到数据透视表字段列表并select该字段并尝试在该处进行筛选,则会显示相同的内容。 也就是说,我曾经在Excel电子表格(数据透视表的源代码)的那一列中有一个特定的项目,一个月前我停止使用这个特定的项目,所以它不再出现在数据源中。 但是,它仍然显示在数据透视表中的行标签的checkbox列表中。 我怎样才能删除这些? 刷新数据透视表并不能解决这个问题。 已经有很多不同的盒子,这使得它更难以阅读。 谢谢你的帮助

在Excel中将工作簿添加到工作簿的末尾(常规方法不起作用?)

这是VBA代码即时通讯使用尝试添加到工作簿中的最后一个位置的新工作表 mainWB.Sheets.Add(After:=Sheets(Sheets.Count)).Name = new_sheet_name 我在这个网站上看到类似的问题。 它不工作。 我在一个循环中执行此操作,并将每个工作表添加到工作表中的第二个位置。 有2张是永久存在的(信息和摘要),然后在前面添加5个更多的称为“testing”1到5.我总是以这样的顺序结束: Info, sheet5, sheet4, sheet3, sheet2, sheet1, Summary 但是我想要的/期望的是: Info, Summary, sheet1, sheet2, sheet3, sheet4, sheet5 (循环确实以预期的顺序生成它们,所以问题不在那里) 如果我在开始之前交换总结和信息表,那么当我完成时,他们会在相反的地方。 我究竟做错了什么?

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 […]