Tag: excel 2007

使用Excel VBA从Word表格的单元格中删除内容

我目前正在进行一个项目,正在寻求一些帮助。 为了让大家知道发生了什么,我将一步一步地运行这个场景。 1)目前我有一个名为“AnimalNamesToRemove”的string数组(这个例子中的数组包含下面的单词),它包含在一个word文档中用作书签的单词,我希望从下面引用的单词表中删除: AnimalNamesToRemove AnimalCat,AnimalDog,AnimalBird 2)除数组之外,还有一个word文档中的表格,其中第一列有动物的名字,还有一些关于动物的信息(唯一重要的信息是动物的名字): 单词表 3)对于这种情况,我有一个Excel表,我期待用来引用数组中的单词和单词表名称,因为在正在使用的单词文档中已经存在书签,这些书签包含数组中存在的名称。 为了将它们结合在一起,存在两列excel电子表格,其中包含书签的名称和实际的动物名称(列2使用名为“myRangeRef”的范围进行引用): 电子表格 4)我要做的是,对于上面列出的数组中的每个值,如果在电子表格中find该值(例如“AnimalDog”)(即,第二列“书签参考”),则偏移到相应的单元格在它的第一列(即“狗”)旁边,创build一个新的以逗号分隔的string,与“AnimalNamesToRemove”(即Cat,Dog,Bird)相同,然后将其转换为名为“AnimalsToDelete”的string数组。 一旦数组被创build,并且所有的值已经在第一列中被选中并且基于第二列中的引用被创build为一个数组,我想要在字表中逐行进行并且对于在新数组中存在的每个值“AnimalsToDelete”,如果这个值(即Cat,Dog和Bird)存在于单词表中(在第一列中find),我希望代码删除整个名字被find的行(见下面的结果) 示例结果 Dim wdTable As Object Dim myRangeRef As Range Dim AnimalNamesToRemove As Variant Dim AnimalsToDelete As Variant Dim wdDoc As Object Set myRangeRef = ThisWorkbook.Sheets("Bookmark References").Range("B1:B6") Set wdTable = wdDoc.Tables(1) For i = LBound(AnimalNamesToRemove) To UBound(AnimalNamesToRemove) For Each cell In myRangeRef If InStr(1, […]

识别(Excel 2007)VBA中的固定的RecentFiles或其他?

有没有一种方法,而不是扫描registry,以确定RecentFile对象被固定到“最近的文档”列表? 从VBA的偏好,可以生活在一个附加的东西。 背景:我希望说服Excel将固定的项目“浮动”到列表的顶部(或底部),这可以通过重新Add到RecentFiles来实现,只要我能够确定感兴趣的项目即可。 我可以在registry中(在HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\File MRU )看到固定的项目在那里被标识,例如: [F00000001][T01CC04D632020F50]*C:\Files\ThisOneIsPinned.xlsx [F00000000][T01CBFB8F14408960]*C:\Files\ThisOneIsNot.xlsx …所以这是一个方法来处理它,我想。 我宁愿less点东西,呃, 令人兴奋的 ..

使用Cubeset创build指定时间段的前10个项目列表

我正在使用Excel 2010在指定的时间段内按销售额创build前10名供应商的列表。 问题是,我只需要考虑属于特定集合的成员的客户。 我发现这篇文章帮助我从所有的客户那里获得销售额的十大供应商,但是我正在为如何总结一个特定集合的成员而苦苦挣扎。 我尝试了注释中页面下方的Sum / CrossJoin示例,但是我无法使其工作。 这可能是因为我对此很新,只是不明白哪些部分需要去哪里。 这是我到目前为止(我的连接名称在单元格M1): 所有客户(完美的作品): =CUBESET($M$1, "TopCount( [Product].[Brand].Children, 10, Sum( [Time].[Calendar].[Calendar Month].&[2011]&[8], [Measures].[Revenue] ) )", "Top 10 Brands" ) 客户子集(似乎返回正确的集合): =CUBESET($M$1, "Intersect( Intersect( exists( [Customer].[Cust Num].Members, {[Customer].[Is Internal].&[False],[Customer].[Is Internal].[All].UNKNOWNMEMBER} ), exists( [Customer].[Cust Num].Members, [Customer].[Type].&[CAT] ), ALL ), exists( [Customer].[Cust Num].Members, [Market].[Market ID].[All].Children – [Market].[Market ID].&[3] – [Market].[Market ID].&[4] ), ALL […]

禁用插入工作表

有没有办法阻止人们手动插入工作表。 我有一个表单根据用户放入的信息自动创build工作表。 我目前使用的代码将阻止人们创build工作表,但是也阻止了我的表单创build工作表。 这是我正在使用的。 它在工作簿模块中。 Private Sub Workbook_NewSheet(ByVal Sh As Object) Application.DisplayAlerts = False Sh.Delete Application.DisplayAlerts = True End Sub

如何优化打开和closuresexcel工作簿来提取数据运行更快

我目前知道有两种方法可以打开和closuresexcel工作簿,从中提取数据并在一个工作簿中进行汇总。 第一种方法如下: Dim wbDataSheet As Workbook For FNum = LBound(MyFiles) To UBound(MyFiles) Set wbDataSheet = Workbooks.Open(MyPath & MyFiles(FNum), 0, True) 'Capture data wbDataSheet.Close (False) Next FNum 其次是这样的: Dim XL As New Excel.Application For FNum = LBound(MyFiles) To UBound(MyFiles) With XL .Workbooks.Open FileName:=MyPath & MyFiles(FNum), ReadOnly:=True .Visible = False End With 'Capture Data XL.ActiveWorkbook.Close False Next […]

时间之间的Excel返回相同范围内的不同值

我使用Excel来计算时间之间的总分钟数。 我的计算公式如下: =INT((M3-L3)*1440) Time1 Time2 Minutes 5.1.2016 21:00:00 5.1.2016 22:00:00 59 5.1.2016 22:00:00 5.1.2016 23:00:00 60 第一个结果是59,第二个结果是60。 这里有什么问题?

如何将Variant数组转换为Range?

我有一个Varianttypes的二维数组。 填充数组的大小和值是基于工作表中的数据生成的。 这个arrays需要进一步的处理,主要是几个值的插值。 我正在使用这个插值函数 (我知道有关excel的等价函数,但是没有使用它们的deviseselect)。 我遇到的问题是内插函数需要一个Range对象。 我已经尝试修改函数来使用Variant( r as Variant )参数。 以下行nR = r.Rows.Count可以用nR = Ubound(r)replace。 虽然这个工作,我也想通常在任何工作表中使用此function,不以任何方式更改function。 Sub DTOP() Dim term_ref() As Variant ' snip ' ReDim term_ref(1 To zeroRange.count, 1 To 2) ' values added to term_ref ' ' need to interpolate x1 for calculated y1 ' x1 = Common.Linterp(term_ref, y1) End Sub 插值函数 […]

Excel 2007透视表自定义计算?

再次,我正在与Excel 2007摔跤! 我有一些数据用于生成数据透视表,我想将所有数据除以1000 我知道我可以手动更改原始数据,但是我宁愿在数据透视表本身中有一个公式来为我做这个。 有什么想法吗? ps:你们真棒!

查找包含数字的行中的第一个单元格?

我在Excel中使用导出的表格如下所示: |——————————————————————————-| | | A | B | C | D | E | F | G | H | I | |—|——————-|—–|—–|—–|—–|—–|——-|—–|———–| | 1 | Domain | JAN | FEB | MAR | APR | MAY | Start | End | Change | |—|——————-|—–|—–|—–|—–|—–|——-|—–|———–| | 2 | www.mydomain1.com | | 1 | 4 | […]

Excel:如果我在同一个工作簿上打开两个窗口,为什么macros在第一个窗口停止工作?

我正试图在Excel中设置一个button,以同时显示两个单独的工作表的双重视图。 这是我迄今为止所写的代码(见下文)。 到目前为止,代码似乎工作。 问题是顶部窗口在工作表上有一些ActiveX控件,他们似乎停止工作,直到底部的窗口再次closures。 为什么会发生这种情况,我该如何解决这个问题? 谢谢。 Private Sub DualViewButton_Click() Dim windowToPutOnTimeline As Window If Windows.Count = 1 Then ThisWorkbook.NewWindow Windows.Arrange xlArrangeStyleHorizontal, True, False, False Set windowToPutOnTimeline = Windows(1) If Windows(1).Top < Windows(2).Top Then Set windowToPutOnTimeline = Windows(2) End If With windowToPutOnTimeline .Activate HorizontalTimelineSheet.Activate .DisplayGridlines = False .DisplayRuler = False .DisplayHeadings = False .DisplayWorkbookTabs = False […]