小编Dmi*_*liv的帖子

文档中链接对象的文件路径的VBA列表

我有许多大型Microsoft Word文档,其中包含许多Microsoft Excel电子表格中的许多链接文件.打开Word文档时,即使未选中"打开时更新链接文件"选项:

在此输入图像描述

Word仍会通过打开和关闭每个链接的相关Excel电子表格来检查其源头的每个链接(因此,对于x个链接,即使来自同一个电子表格,Word也会打开并关闭电子表格x次).这意味着打开文档需要很长时间.

我发现如果包含链接对象源的电子表格已经打开,文档打开得更快,因此Word不会保持打开,关闭,重新打开它们.

到目前为止,我所拥有的解决方案的开头是创建链接对象的所有文件路径的列表,通过以下VBA代码完成:

Sub TypeArray()

Dim List(), Path As String
Dim i, x As Integer
Dim s As InlineShape
Dim fso As FileSystemObject, ts As TextStream

Set fso = New FileSystemObject
Set ts = fso.OpenTextFile("C:\MyFolder\List.txt", 8, True)

With ts
    .WriteLine (ActiveDocument.InlineShapes.Count)
End With

For Each s In ActiveDocument.InlineShapes
        Path = s.LinkFormat.SourcePath & "\" _
        & s.LinkFormat.SourceName
        With ts
            .WriteLine (Path)
        End With
Next s
End Sub

'-------------------------------------------------------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

excel vba ms-word excel-vba word-vba

5
推荐指数
1
解决办法
3548
查看次数

查找并替换公式中的文本

我无法理解如何制作宏.

我正在尝试向下搜索一列,并在每个单元格中检查文本"TODAY()",并将其替换为"TODAY() + B2"B2在某个天数的位置.

我一直在寻找,我认为我很接近,但我仍然遇到麻烦.

Sub findrep()
    Dim Findtext As String
    Dim Replacetext As String
    Findtext = "TODAY()"
    Replacetext = SUM(TODAY(),"Sheets("Sheet1").Range("B2").Value")
    Columns("A").Replace what:=Findtext, replacement:=Replacetext, lookat:=xlPart, MatchCase:=False

End Sub
Run Code Online (Sandbox Code Playgroud)

我希望将来某个时间在单元格中显示日期,具体取决于单元格B2中的天数.VBA必须能够在单元格中搜索公式,因为公式中不仅仅是"TODAY()"公式.

提前致谢.

excel vba replace formula find

5
推荐指数
1
解决办法
1万
查看次数

Excel公式搜索某个范围内的所有单元格是否为"True",如果没有,则显示"False"

使用excel公式搜索某个范围内的所有单元格是否为"True",如果没有,则显示"False"

例如:

A      B     C     D
True  True  True   True
True  True  FALSE  True
Run Code Online (Sandbox Code Playgroud)

我想要一个公式来读取这个范围,并显示在第2行中,这是一个"假",因为第1行没有任何谬误,我希望它显示"真实".

谁能帮我这个?

excel if-statement contains excel-formula

5
推荐指数
2
解决办法
9万
查看次数

excel平均每10行

我有一个大数据集,大约有9000行.从1960年开始,我每年都会有一些变量,我需要在十年的箱子里对它们进行平均.所以我有类似的东西:

1    
2    
3    
4    
2    
3    
4    
5
Run Code Online (Sandbox Code Playgroud)

现在我需要平均前10行,然后是接下来的10行,依此类推,对于所有9000多行.我可以这样做,但后来我把所有这些行平均在中间我不需要,我不能去删除那么多行.必须有一个简单的方法来做到这一点,当然?

非常感谢任何帮助!

excel excel-formula

5
推荐指数
1
解决办法
4万
查看次数

超过 255 个字符的数组公式

运行 VBA 代码时出现错误。

运行时错误“1004”:无法设置 Range 类的 FormulaArray 属性

我认为这是因为我有超过 255 个字符。

如果是这种情况,有人知道我可以使用的解决方法吗?

我的代码是下面漂亮的一团糟:

formula_string = "=-SUM("
account_counter = 1
Do Until Range("tblAccounts[[#Headers],[Accounts]]").Offset(account_counter, 0).Value = ""
    account_name = Range("tblAccounts[[#Headers],[Accounts]]").Offset(account_counter, 0).Value
    formula_string = formula_string & "IF(IFERROR(" & account_name & "[Category]=[@Categories],FALSE)*(" & account_name _
        & "[Transaction date]>=Budget!C$1)*(" & account_name & "[Transaction date]<=EOMONTH(Budget!C$1,0))," & account_name _
        & "[Outflow],0),"
    account_counter = account_counter + 1
Loop
formula_string = Left(formula_string, Len(formula_string) - 1) & ")"

    Do Until Range("tblBudget[[#Headers],[Ignore?]]").Offset(category_counter, 0).Value = ""
        If Range("tblBudget[[#Headers],[Ignore?]]").Offset(category_counter, 0).Value = "No" Then …
Run Code Online (Sandbox Code Playgroud)

excel vba

5
推荐指数
1
解决办法
3215
查看次数

将测试用例导入Testlink

我正在尝试将测试用例导入Testlink.xml文件来自excel.我的领域是:

Name,
Summary, 
Stepactions, 
Expectedresults
Run Code Online (Sandbox Code Playgroud)

但是,我只在Testlink中看到名称和摘要.不会导入步骤和预期结果.怎么了??

非常感谢!

xml import excel testlink

5
推荐指数
1
解决办法
2万
查看次数

xlCellTypeVisible不返回过滤范围,而是整个范围

好的,大家对此感到莫名其妙...

我在Access中的Excel中有一个链接表。我正在尝试编写一个vba函数,该函数返回该表给定列的过滤范围地址。请记住,我正在尝试使用结构化引用(例如Table1 [[#Data],[Column2]]),因为它是一个链接表,并且旨在随时间刷新和更改。

我使用xlCellTypeVisible无济于事。该函数仍然返回整个范围,即使它已被过滤。

更令人困惑的是,我创建了一个几乎相同的Sub(而不是Function,因此我可以逐步执行),该Sub 正确返回所需的收益!我难过了;我只是不能在函数中复制它。我怀疑这与结构化引用有关。

功能“filteredRange”错误地返回的整个范围“$ F $ 2:$ F74”,当我进入这个到Excel中的任意单元格。

=filteredRange(Table_RyanDB[[#Data],[LC]])
Run Code Online (Sandbox Code Playgroud)

而以下子“测试”确实返回正确答案“ $ F $ 2:$ F $ 14”。我似乎无法辨别为什么它们的输入变量输出不相同。

Sub test()
    Dim theRange As Range
    Set theRange = Range("Table_RyanDB[[#Data],[LC]]")
    MsgBox theRange.Rows.SpecialCells(xlCellTypeVisible).Address
End Sub



Function filteredRange(theRange As Range)
    filteredRange = theRange.SpecialCells(xlCellTypeVisible).Address
End Function
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

5
推荐指数
1
解决办法
1705
查看次数

在控制台应用程序中使用异步和等待

我有四种方法。

  1. Main:只调用preform方法
  2. 工作中:显示“请等待用户”
  3. 花费时间:需要时间执行的程序。
  4. Preform:异步调用取时间和工作方法。

以下是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace AsyncObservation
{
    class Program
    {
        static void Main(string[] args)
        {
            preform();
        }
        public static async Task Working()
        {
            Console.WriteLine("Please wait, the program is running");  
        }
        public static async Task Takingtime()
        {
            Console.WriteLine("This Program started");
            Thread.Sleep(1000);
            Console.WriteLine("The Program finished"); 
        }
        public static async void preform()
        {
            Task timer = Takingtime();
            Task wait = Working();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

最后:我需要显示

This program started. 
Please …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous async-await

5
推荐指数
2
解决办法
1万
查看次数

我可以获取一系列单元格,删除重复项和空白单元格,然后复制到VBA Excel中已存在的表格中吗?

我对VBA很新,请原谅我,如果我这样做完全错了.基本上,为了概述我正在做的事情,我有一个由用户填写的模板.模板上有值,我需要添加到表中,但我不想添加空格或重复项.我开始在连续范围内冷凝它们,我能够找出如何删除重复项,但我无法删除剩下的一个空白.此外,我不确定将它们添加到另一个工作表上的表的最佳方法.这就是我到目前为止......

Sub UpdateKey()

 Range("P10:P36").Select

 Selection.Copy
 Selection.PasteSpecial Paste:=xlPasteValues

 Selection.RemoveDuplicates Columns:=1, Header:=xlNo

End Sub
Run Code Online (Sandbox Code Playgroud)

就像我说的,这总是让我在中间空白,我不知道如何摆脱,我不知道从这里去哪里添加剩下的东西到我的桌子.谢谢你的帮助!

excel vba excel-vba

4
推荐指数
1
解决办法
9509
查看次数

类型不匹配循环形状

我在循环幻灯片中的形状的行中出现类型不匹配13错误.我可以看到它oShNothing,但如果我.Count的形状,幻灯片中有很多形状.这有什么意义?

简要代码:

Dim oPP As PowerPoint.Presentation
Dim oS As Slide
Dim oSh As Shape
For Each oS In oPP.Slides
    For Each oSh In oS.Shapes '<-- this line is the error line
        On Error Resume Next
        If oSh.Type = 14 _
                Or oSh.Type = 1 Then
            'do stuff            
        End If
        On Error GoTo 0
    Next oSh
Next oS
Run Code Online (Sandbox Code Playgroud)

完整代码:

Sub PPLateBinding()
    Dim pathString As String
    'no reference required
    Dim PowerPointApplication As PowerPoint.Application
    Dim oPP As …
Run Code Online (Sandbox Code Playgroud)

excel powerpoint vba excel-vba

4
推荐指数
1
解决办法
1390
查看次数