Tag: excel vba

在配方栏中隐藏公式

当我在Visual Basic中使用下面显示的代码时, HYPERLINK部分出现在工作表的公式bar 。 我只想要"TextHere"栏中显示"TextHere" 。 我可以添加什么额外的代码? 我试图通过在保护选项卡中更改其属性来隐藏它,但是它不允许我再编辑TEXT。 我希望它仍然是编辑友好的。 Sub IndexingSheets() Sheets(1).Range("A1").Formula = _ "=HYPERLINK(""#" & ThisWorkbook.Sheets(2).Name & "!A2"", ""TextHere"")" End Sub

如何将图表从Excel复制到PowerPoint?

有什么办法可以将excel电子表格中的图表复制到一个简报中, 保留原始格式并embedded数据 ? 已经有一个关于以编程方式复制粘贴图表的问题 。 但是,关于数据embedded没有任何说法 最大的问题是embedded数据。 据我所知,数据embedded需要从功率点开始重新创build图表。 (PS:通过embedded我不是指链接到一个外部的Excel文件。)

使用Excel VBA查找工作簿中的所有匹配项

我正在尝试编写一个VBA例程,它将接收一个string,search给定的Excel工作簿,并返回所有可能的匹配项。 我目前有一个工作的实现,但它是非常缓慢的,因为它是一个双循环。 当然,内置的Excel Findfunction是“优化”来find一个匹配,但我希望它返回一个初始匹配数组,然后我可以应用更多的方法。 我会发布一些我已经有的伪代码 For all sheets in workbook For all used rows in worksheet If cell matches search string do some stuff end end end 如前所述,这个双循环使事情运行非常缓慢,所以我正在寻求摆脱这个如果可能的话。 有什么build议么? UPDATE 虽然下面的答案会改善我的方法,但我最终还是采取了稍微不同的做法,因为我需要一遍又一遍地做多个查询。 我决定循环遍历文档中的所有行,并创build一个包含每个唯一行的键的字典。 这个指向的值将会是一个可能的匹配列表,所以当我稍后查询时,我可以简单地检查它是否存在,如果是的话,只需要获得一个匹配的快速列表。 基本上只是做一个初始扫描,将所有内容都存储在可pipe理的结构中,然后查询可以在O(1)时间内完成的结构

将Excel行输出到一系列文本文件

在Excel里面,我有列A中的文章名和列B中的免责声明。现在对于列A中的每篇文章,我想创build一个文本文件,A是文件的标题和B,免责声明,是文件的内容。 这可能吗? 这个想法是我有几百个,我想让自己更容易。 如果Excel不适合这个,任何人都可以提出一个替代scheme? (可能记事本+ +有一个function,可以帮助?)

使用excel vba过滤掉多个条件

A列中有8个variables,1,2,3,4,5和A,B,C 我的目标是过滤掉A,B,C,只显示1-5。 我可以使用下面的代码来做到这一点: My_Range.AutoFilter Field:=1, Criteria1:=Array("1", "2", "3","4","5"), Operator:=xlFilterValues 但是代码做的是过滤variables1到5并显示它们。 我不想做相反的事情,但是通过筛选出A,B,C并显示variables1到5,得到相同的结果 我试过这个代码: My_Range.AutoFilter Field:=1, Criteria1:=Array("<>A", "<>B", "<>C"), Operator:=xlFilterValues 但它没有工作。 为什么不能使用这个代码? 它给出了这个错误: 范围类的运行时错误1004 autofilter方法失败 我该怎么做?

Excel VBA如果工作表(“wsName”)存在

我想知道是否有干净的切割function返回True或False如果工作簿内的工作簿存在? 如果可以在不跳过error handling的情况下做到这一点,那将是好事,但不是必须的。 我发现的唯一的东西并不真正的工作: On Error Resume Next If (Worksheets("wsName").Name <> "") Then Debug.Print "Worksheet exists!" Else Debug.Print "Worksheet doesn't exist!" End If On Error GoTo ErrHandler

如何使用单元格内的hex颜色值突出显示单元格?

我有一个符号和匹配hex颜色的电子表格。 我想用单元格内的hex颜色填充单元格本身(或旁边的单元格)。 我已经读了一些关于“条件格式化”的内容,我认为这是做到这一点的方法。 我怎么能达到我想要的结果?

为什么我有问题分配一个范围到一个variables数组

我有一些非常简单的代码行几个问题。 让我详细说明事实,看看是否有其他人可以复制这种行为。 如果任何人可以复制,我想解释为什么发生。 所以,让我从一个非常简单的代码行开始工作: Dim arr() As Variant arr = Range("A1:A10") 如预期的那样, arr被赋予A1:A10的值A1:A10 现在为什么不会有以下代码行? Dim arr() As Variant arr = WorkSheets("Sheet1").Range("A1:A10") 我得到了运行时错误'13'types不匹配,即使相同的范围已成功地分配给数组,即使没有工作表值。 但 Dim arr As Variant arr = Worksheets("Sheet1").Range("A1:A10") 和 Dim arr() As Variant arr = Application.Transpose(Application.Transpose(Worksheets("Sheet1").Range("A1:A10"))) 能工作吗? 现在,在你回答之前,请让我给你更多的事实。 Dim arr() As Variant arr = Worksheets(1).Range("A1:A10") 不起作用 并使用Sheets代替Worksheets也都给出了相同的错误。 我已经通过使用Range("A1:A10").Worksheet.Name确保它与活动引用表单相同Range("A1:A10").Worksheet.Name在工作代码之后,它确实在输出中表示Sheet1 。 没有其他工作簿是开放的,所以它不能引用另一个工作簿。 现在,这最后一点的代码只会增加我的困惑,因为它完全有效! Dim arr() […]

VBA:如何将Excel工作簿保存到桌面而不pipe用户?

我有一个Excel工作簿上的表单button单击我需要将工作簿的副本保存到用户的桌面。 最初一切都将在一个共享的networking文件夹,但现在我有大约6个不同的用户,当他们点击button,我需要将工作簿保存到他们各自的桌面。 他们的方式(编码方式)保存到机器桌面,而不必指定个人用户(这将需要我维护6个不同的工作簿文件)?

刷新Excel VBA函数结果

有谁知道我怎么可以得到一个用户定义的函数重新评估自己(基于电子表格中更改的数据)? 我试过F9和Shift + F9 ,但那些不起作用。 似乎工作的唯一的东西是编辑与该函数调用单元格,然后按Enter键。 有任何想法吗? 我似乎记得能够做到这一点…