Questions tagged «vba»

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

0
从主工作表VBA中的数据创建新工作表
我正在寻找一个数据库样式excel文档,自动填充主工作表(sheet1)中的数据 例如; 在表1中,我将获得所需的所有信息。如设备ID,位置,类型,型号,IP地址,交换机端口,POE要求,电缆参考,配线架端口,安装状态等。等 然后,我想使用设备ID参考来创建具有特定信息的多个其他工作表。 例如; 表2 =设备信息(位置,类型,型号等) 表3 = IP信息(IP地址,交换机端口等) 表4 =安装信息(电缆编号状态等) 当新信息添加到主工作表(工作表1)并将其添加到表格底部时,我还需要新工作表自动更新。 提前致谢,
vba 


1
打开Word 2007的多个独立实例
自MS Word 2007以来,文档的打开方式似乎发生了变化。在较旧的版本中,每个文档都可以在完全独立的Word窗口中打开。现在,所有似乎都在一个单一的过程中打开,这当前不是理想的行为。 我尝试打开Mailmerge文档的多个副本(所有文件夹在不同的文件夹中并以不同方式命名),以加快创建字母以围绕大约10k收件人的过程。使用VBA自动创建和打印文档。 在旧版本的Word中,我可以通过启动应用程序的另一个实例然后打开文档,在Word的独立进程中打开每个文档。每个Word Process都不会干扰其他Word Process,因此它们都可以同时工作。 现在我找不到单独运行它们的方法。如果我在其中一个中执行Apllication.Visible = False,则所有文档都将变为不可见。我无法启动多个宏,因为无法在同一个Word实例中运行多个宏。 有谁知道,我怎么能解决这个问题?

0
Excel表单从链接的.xlsx读取/写入
我继承了一个部分完整的项目,学生开发人员使用excel作为数据库。 Hes试图将用户界面(用excel表单创建)和“数据库”分开,这是一个单独的excel工作簿中的工作表。 (正如我对访问和链接表所做的那样。) 我怀疑表单是在同一本工作簿中,并已被移动到单独的工作簿中。它可以读取数据但不写回。 这是一种可行或常用的方法吗?任何人都可以共享一个可以打开/读取和写入远程电子表格的vba表单的简单工作示例吗?

1
向Excel电子表格添加额外的功能/逻辑
我是Excel函数和VBA编程的新手,所以这个问题对我来说是一个真正的挑战。我有一个电子表格,可以跟踪64位测试中的应用程序状态,我想添加一些额外的功能。 这就是我需要的功能: 当应用程序退出“是”(Adobe 1.0)时,它将获取Retire Into UID(20)字段中的值,并在工作表中搜索其UID字段中具有“20”的应用程序(Adobe 2.0) )。当它与UID匹配时,如果Retire for Adob​​e 2.0为“No”且Win7 x64 Fully Tested为“Pass”,那么我想从该行获取AD组名称(Adobe 2.0)并将其填充到Adobe的Alternate列中1.0。我还想将Can Migrate标记为64Bit单元格为“是”。如果针对Adobe 2.0的Win7 x64完全测试“失败”,该函数仍会在Adobe 1.0的备用字段中填充AD组名称,但对于Adobe 1.0,迁移到64位将为“否”。 完整的电子表格包含大约1800个项目,因此我需要它才能完成整个文档。 下面是顶部表格中原始数据的示例数据的屏幕截图,以及底部表格中函数的结果。希望我的解释是有道理的。任何帮助或建议将不胜感激。谢谢!


1
VBA - 而不是ActiveExplorer.Selection来设置文件夹,显式设置文件夹路径
Sub MoveItems() Dim Messages As Selection Dim Msg As MailItem Dim NS As NameSpace Set NS = Application.GetNamespace("MAPI") Set Messages = ActiveExplorer.Selection If Messages.Count = 0 Then Exit Sub End If For Each Msg In Messages Msg.Move NS.Folders("Personal Folders").Folders("SavedMail") Next End Sub 此代码将所有电子邮件从Outlook中当前选定的文件夹移动到另一个文件夹(SavedMail)。我想编辑代码,以便不是使用当前选择的文件夹作为消息的来源,而是会有一个硬编码的文件夹 - 类似于 Set Messages = NS.Folders("Personal Folders").Folders("Moved")。 …

0
使用Excel VBA自动化IE导航和数据收集
我正在尝试浏览Interent Explorer并使用VBA下载CSV。我知道该网站使用javascript编码为html,但我很难找到我需要使用VBA语法而不是html的点。我也不知道这是否是正确的方法,因为文档,我发现,在线并不具体来涵盖我的具体问题。我明白我可以很容易地使用python执行此操作,但缺乏开始这段旅程的知识。从VBA开始,即使它很慢。 以下是我目前的尝试和首次尝试编码自动化。此外,如果有任何人知道在操作系统被“锁定”而不是“退出”时安排运行宏,这将是非常好的,但是现在我真的只需要一种自动方式来获取这些数据。 Public Sub GrabCSV() Dim IE As InternetExplorerMedium Dim URL As String Set IE = New InternetExplorerMedium URL = "http://link" With IE .Visible = True .Navigate URL End With Do While IE.Busy DoEvents Loop 'Current Attempt IE.document.form.Select.getElementsByName("01").Selected = True IE.document.form.Select.getElementsByName("02").Selected = True IE.document.form.Select.getElementsByName("03").Selected = True 'Attempt 1 'IE.Document.form("highlight").Select …


1
PasteSpecial Range类失败,我能做得更好吗?
我正在尝试从一本书中复制一个范围,打开目标书并将值附加到该工作表,使Range类失败并且不确定如何解决这个问题。这是我的代码,感谢您的关注。 Sub openDATfiles() ' openDATfiles Macro Dim ws As Worksheet, strFile As String, x As Integer, _ y As Long, Pressure As Variant, Tstamp As Variant, LastRow As Long, LastRow2 As Long, cn As Variant, fPath As String fPath = "F:\McMAHON\From David\SJ15_10_01_CD\" strFile = fPath & Dir(fPath & "*.dat") x …

3
Excel宏将值插入另一个单元格
好吧,我需要一些帮助excel我是新手。我有一个电子表格,将所有这些值加在一起,并将它们放在单元格M3中。但是这是我将要使用的每日电子表格,所以我想添加一个按钮来运行宏,以便在我第一次点击它时将值从M3复制到N7。但是下次我点击它时我希望它将值从M3复制到N8,依此类推,直到N37,持续一个月。 我一直试图把这件事做了一段时间,似乎找不到任何东西可以帮助我以为我会问这里,也希望有人能为我解释一下代码,这样我就能更好地理解它。我已经添加了按钮,因此无需告诉我该怎么做。

0
如何阻止Excel更改我的时间格式?
我目前正在开发一个excel程序,它使用vba和宏从数据输入工作表获取数据到显示工作表。除时间字段外,大多数数据都可以正常传输。 举一个例子,时间字段中的数据是这样写的: “12:00 PM” 我正在使用h:mm AM / PM的自定义格式。 要将它链接到显示工作表,我使用SQL字符串来调用数据输入工作表中的数据,并添加一个按钮来执行代码。但是,显示工作表中的Time数据变为: “0/1/1900 12:00:00 PM” 更重要的是,在执行代码之后,我设置格式的数据条目中的时间最初变得与显示工作表中的时间相同。 显示工作表函数使用3个SQL命令,如下所示。 select * from EntryTable select A.*,[Date + Time] from Summary1 A left join (select [Die No], max(Date + Time) as [Date + Time] from Summary1 group by [Die No]) B on A.[Die No] = B.[Die No] …

1
Word / Access VBA总计
我需要有关vba字表列计算的帮助。我的Word表是使用Access数据库VBA在Word模板中创建的。我需要计算表格最后一列的总和。但我的表没有明确的行数。我已经尝试了各种选项无济于事....以下创建表成功并进行计算,但只有我的表的最后两行(目前我打开的记录为3行)但不计算总和对于希望的整个专栏。我无法理解我所缺少的东西? Dim rs2 As DAO.Recordset Set rs2 = CurrentDb().OpenRecordset("SELECT * FROM InvoiceServiceLineItems WHERE InvoiceID=" & Forms!invoicedetail!ID, dbOpenSnapshot) With rs2 .MoveLast If Not .EOF Then .MoveLast .MoveFirst End If End With Dim indx As Integer For indx = 1 To rs2.RecordCount With oDoc.Tables(3) .Cell(indx, 1).Range.Text = Nz(rs2![LineItemCode], "") .Cell(indx, 2).Range.Text = …

0
如何取消焦点/使光标在Access中消失?
我在Access中有一个表单;当您将光标放在文本框或组合框中,然后单击一个空白区域时,它不会消失。只是烦恼。我希望它像我现在输入的消息字段一样响应。单击旁边的空白区域,将取消选中或未设置焦点。 TIA

1
VBA用于解析电子邮件正文的电子邮件正文,写入Excel
我有一个要求,我需要一个函数来遍历Outlook(2010)文件夹中的所有电子邮件,并从电子邮件正文中获取电子邮件地址。电子邮件来自Inbox \ Online Applicants \ TEST CB FOLDER 身体中只有一个电子邮件地址。然后,应将此电子邮件写入email_output.xls桌面上的excel文件。 从这个论坛帖子我发现并略微修改了最终的宏以尽可能地满足我的需求(只有粗略的VBA知识): Option Explicit Sub badAddress() Dim olApp As Outlook.Application Dim olNS As Outlook.NameSpace Dim olFolder As Outlook.MAPIFolder Dim Item As Object Dim regEx As Object Dim olMatches As Object Dim strBody As String Dim bcount As String Dim badAddresses As Variant …

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.