Questions tagged «vba»

Visual Basic应用程序;所有Microsoft Office应用程序中使用的Visual Basic的子集。考虑将该标签与该特定应用程序的标签一起使用。关于VBA的好问题通常包含一些代码,并要求解决特定问题。要求完整解决方案的问题(请给我代码/如何使用VBA做到这一点)不在主题之内,将因为过于广泛而封闭。

2
如何在Excel中使用专用订阅?
我想使用这里Private Sub提供的功能。 通常将VBA代码放在Visual Basic编辑器中,然后关闭编辑器,并使用“开发人员”选项卡上的“运行此宏”运行代码。但是在这种情况下,该功能不会出现。 我需要在哪里放置此代码以运行它?

5
将Excel设置为默认情况下在整个工作簿中搜索
在Microsoft Excel中,当我使用CTRL+ 搜索时F,默认情况下,它仅在当前工作表中搜索。 默认情况下,如何设置它在整个工作簿中搜索?我有Office 2010。这有可能吗?是否可以为特定的工作簿或工作表设置此设置?如果可以的话,我可以对注册表进行编辑。 注意:将近10年后,我仍然想这样做,但现在适用于Excel 2016/2019。


5
如何在Excel中将多行中的值合并为一行?
我在Excel中有一个数据转储,其中包含两个不同值的年度客户数据。数据单独提供了一行,用于每年和客户的价值。即它看起来像这样: 我在2009年为客户1保留了价值A的一行,为同一年同一客户为价值B保留了另一行。 在某些情况下,没有值A或值B。在上面的示例中,您可以看到客户1在2011年没有值B,因此没有为此生成任何行。而且,尽管示例中未显示,但某些客户在一年中将没有任何一个值的数据(因此该年中该客户没有行)。在这种情况下,那年在该客户那里连续缺席就可以了。 我想进入一个工作表这个地方有一排的两个每年和客户价值。即,我希望数据看起来像这样: 产生结果的最有效方法是什么?

3
自定义用户功能,无需使用VBA
是否可以在不使用VBA的情况下在Excel中创建自定义用户功能? 我的问题是我串了很多标准的excel函数,使它们成为一个很长的函数。此功能在我的工作簿中的25个不同的工作表中使用。如果需要进行更改,我只想在一个地方进行更改,并使更改自动传播到所有工作表中。 例如,一个简单而琐碎的情况就是将一个添加到SUM()的结果中,即。SUM(mySeries)+1,并将其称为新函数MYSUM()。 由于可能出现的潜在错误和增加的复杂性,我不愿意将长公式转换为VBA。

3
在Excel中搜索值,返回是或否
我有一本工作簿,有两个单独的工作表。我想知道是否出现在工作表B中的值也出现在工作表A中,如果是的话,我想返回一个“是”。如果没有,我想返回一个“ NO”。 (例如:工作表A是过期书籍的列表。工作表B是整个图书馆)。 在工作表A中,我具有以下数据集: A 1 AB123CD 2 EF456GH 3 IJ789KL 4 MN1011OP 在工作表B中,我具有以下数据集: A Overdue 1 AB123CD ? 2 QR1516ST ? 3 EF456GH ? 4 GT0405RK ? 5 IJ789KL ? 6 MN1011OP ? 如果表A中存在值,我将如何构造函数以正确查找? 我一直在玩if(),vlookup()和match()的组合,但是对于多个工作表似乎没有任何作用。

3
如何在Excel 2013中下载股票价格?是否有与Google Doc的GoogleFinance电子表格功能等效的功能?
在Google文档电子表格中,我可以使用以下单元格公式: =GoogleFinance("GOOG", "price") 下载股票的最新价格。Excel 2013中是否有等效功能? Excel的早期版本具有智能标记功能,可以为每个股票下载大量数据(实际上,如果您只需要价格,则太多了),而且我见过一些资料表明建议使用Bing Finance应用程序来支持Excel2013。不幸的是,这已经停产了。 有没有简单的方法可以做到这一点?我实际上只是需要最新的价格,并且我不关心它是否延迟,例如Yahoo Finance等。大概我可以编写VBA代码从YF下载CSV文件,进行解析等等,但是我希望避免创建启用宏的工作簿。

3
使用外部文本编辑器编辑VBA代码
我继承了许多要维护的VBA代码,到目前为止,我正在使用VBE。有时很难完成某些任务,例如高级文本搜索,因此通常我会导出模块,使用vim编辑内容,然后导入修改后的模块以测试代码。 这可能会有点混乱和无聊。我知道VBE可以是COM自动化的,所以我在考虑是否有办法(例如插件或脚本)使用外部文本编辑器(vim,notepad ++或sublime文本)编写VBA代码,然后在其中自动刷新VBE 提前致谢

3
将JSON数据导入Excel
我有一个json格式的文本文件,并想将其读入Excel。json文件的一个非常简化的示例具有以下结构: { [ { 'a': 10, 'b': 20 }, { 'a': 20, 'b': 22 }, { 'a': 11, 'b': 24 } ] } 我想将其转换为Excel,其中每个记录在excel中都以选定的参数作为列标题成为一行。


2
什么是Outlook 2007宏来自动选择Paste Special - Unformatted Text看起来像什么?
我想将Outlook 2007中的宏分配给工具栏按钮,当Windows剪贴板中存在格式化文本时,该按钮将执行相当于这些单击的操作: 单击底部箭头的粘贴图标 单击“选择性粘贴”链接。 单击“无格式文本”链接。 我在Excel 2007和Word 2007中有类似的宏,但无法在Outlook 2007 / VBA中使用它。这样一个宏的VBA代码是什么?

3
创建幻灯片时转到PowerPoint中的特定幻灯片
这可能很容易实现,但是我不知道如何看透它。 当我使用MS Powerpoint创建演示文稿时,我必须从幻灯片到幻灯片(例如从幻灯片3到幻灯片45)。到目前为止,我已经使用幻灯片排序器达到了所需的幻灯片。 对于类似的要求,MS Word也Go to page可以选择使用Ctrl+G键盘快捷键来调用。 在MS PowerPoint中编辑幻灯片时,是否有类似的快捷方式可转到特定幻灯片? 更新 从下面的答案和互联网搜索中,我了解到,在“ 编辑”模式下,无法转到特定的幻灯片(就像在Word中转到一页一样)。 我编写了以下宏来实现此功能。 'Go to a particular slide when in edit mode Sub go_to_slide() Dim S As Integer Dim total_slides As Integer total_slides = ActivePresentation.Slides.Count S = InputBox("Enter slide number", "Go To Slide") If (S <= 0) Then MsgBox ("Enter …

1
带有公式的二进制文本
我有一个简短的VBA函数,它产生文本字符串的二进制表示: Public Function TextToBin(S As String) As String Dim i As Long, L As Long L = Len(S) With Application.WorksheetFunction For i = 1 To L TextToBin = TextToBin & .Dec2Bin(Asc(Mid(S, i, 1))) Next i End With End Function 例如: 我被要求用一个简单的公式替换这个UDF,以便应用程序可以在无宏环境中运行。 我目前的解决方法是放置: =IFERROR(DEC2BIN(CODE(MID($A$1,COLUMNS($A:A),1))),"") 在细胞中 B1 并复制。然后,在另一个单元格中,使用: =TEXTJOIN("",TRUE,B1:IV1) 但是,我不想承认我们能做的最好的事情就是使用超过16,000个辅助细胞! 是否有一个简单,紧凑的方法来获得相同的结果?

4
Excel VBA函数运行时错误1004:应用程序定义的错误或对象定义的错误
我正在尝试学习函数,以便在必要时简化和重用代码。 我开始将经常使用的东西转换成函数:返回电子表格中最后一个非空白列的整数值。 Function FindLastDataLine(strColName As String) As Long FindLastDataLine = Range(strColName).Offset(Rows.Count - 1, 0).End(xlUp).Row End Function Sub PracticeMacro() intItemCount = FindLastDataLine("A:A") MsgBox ("There are " & intItemCount & " rows of data in column A.") End Sub 当我运行它时,我收到运行时错误'1004'“应用程序定义或对象定义的错误”,这有助于帮助定义为“别人的错”,并不是一字不差地引用。 我哪里可能出错?

1
Excel VBA - 如果单击并选择单元格范围内的单元格,则运行宏
我需要一个例程来识别是否在一个范围内单击了一个单元格,然后运行一个宏。我已经部分地解决了这个问题。 我的问题是: 我需要在单击单元格时切换值,而不是在选择单元格时切换值,所以 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range(testRange) Is Nothing Then 'Cell was Clicked End If End Sub 只要没有选择单元格,它只适用于我。 我能做什么?是否有功能检查是否执行了鼠标单击并选择了单元格?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.