Articles of vba

使用VBA将linux文本文件加载到excel中

我有一个在Linux上创build的文本文件,如果我打开它在Word中的文件正常出现。 但是,当我在记事本中打开它,当我尝试使用下面的代码加载到Excel中时,它显示为一行。 ' Open the file Open Filename For Input As #1 ' Look for the Table Title Do While Not (EOF(1) Or InStr(TextLine, TableTitle) > 0) Line Input #1, TextLine Loop 我怎样才能把它分成原始的线条? vba可以使用吗?是否有行结束的分隔符?

访问网页的框架文档,无需导航到此网页

标题可能会令人困惑,但这不仅仅是一个印象。 我有一个关于这个以前的post ,但核心问题实际上比这更深。 基本上,我有一个大的代码,我从我的公司导航到Intranet网页(让我们称之为开始网页)。 然后我提供用户名和密码信息,然后单击“login”button。 点击loginbutton将在新窗口中创build一个新的网页。 我们将这个新的网页称为主网页。 主网页包含了我想获得的所有重要信息,而开始网页现在对我无用。 这里的第一个挑战是“启动”或“select”主页面,因为“开始”页面仍处于激活状态。 主网页显然有一个url,但不可能直接导航到这个url,所以我就说说网页的“激活”或“select”。 我设法在论坛的post的帮助下做到这一点 如果您有任何疑问,请告诉我,但这不是这篇文章的问题。 所以在主网页激活的情况下,我想单击一个元素来显示更多的信息。 这个元素embedded在框架postfachcontent中 。 请参阅主页上的HTML文档概述和缩放部分点击 。 在我之前提到的那篇文章中,我试图做到这一点,但是熟悉使embedded式任务变得更加困难的元素。 在其他成员的帮助下,我发现有两种方法可以进入后期内容框架: 通过孩子select孩子的框架: Set w = IEWindowFromLocation(path) Dim IEDoc As HTMLDocument Set IEDoc = w.document ' w is the so called Main webpage that I selected peviously in the code Dim SubFramesCollection As HTMLWindow2 Dim GoodFrame As HTMLWindow2 […]

从XP中的任务调度器转移到Windows7

我正在从XP中的任务调度器转移到Windows7,我正试图更好地理解它。 我有一个位于此位置的N:\Folder1\subFolder1\subFolder2\subFolder3\subFolder4\script.vbs脚本N:\Folder1\subFolder1\subFolder2\subFolder3\subFolder4\script.vbs 这个script.vbs基本上在同一个目录中打开一个excel文件(.xlsm)并在该excel文件中运行一个macros,然后closures该excel文件。 该脚本使用此代码获取它所在的目录strPath = WshShell.CurrentDirectory 。 macros基本上复制一个csv文件(位于其他地方)的数据,并可能做一些其他的数据处理的东西。 我在不同的文件夹/子文件夹上面这样做了不同数量的时间,所以基本上每个excel文件都有一个文件夹,它也有自己的script.vbs文件。 然后我安排这些脚本在任务调度程序中运行。 在XP中,这是好的,并在脚本计划,并按要求运行。 但现在我正在使用Windows7,希望能够再次安排这些工作。 事实certificate,我必须将每个script.vbs的位置放置在每个时间表的Action选项卡的Start in: (optional) parmae​​ter中。 但是我想知道的是,为什么我必须在每个时间表上做到这一点 ? 我以为我已经在脚本中获取当前的script.vbs目录,或者我错过了一些东西。 任何其他意见/改进欢迎这种方法。 注意: 我不记得在Windows XP中这样做,但也许Windows XP为你做了这个。 我不需要以最高的私有化运行,因为我的密码每3个月就会更改一次 'need to update WBName & MacroName here as this is fairly generic dim WshShell set WshShell = CreateObject("Wscript.Shell") dim strPath strPath = WshShell.CurrentDirectory 'WScript.echo("For Debugging: strPath") 'WScript.echo(strPath) 'msgbox strPath Dim […]

Vbscript插入时,从USB复制具有特定扩展名的文件

我有这个可视化的基本脚本,允许我插入机器时从USB驱动器复制所有的内容。 'Sauvegarde automatique des clés USB et SDCARD dés leurs insertion. 'Ce Programme sert à copier automatiquement chaque clé USB nouvellement insérée ou bien une SDCard. 'Il sert à faire des Sauvegardes incrémentielles de vos clés USB. 'Pour chaque clé USB, il crée un dossier de cette forme "NomMachine_NomVolumeUSB_NumSerie" dans le dossier %AppData% et 'il […]

如何使用Access / VBA复制到剪贴板?

在Access2003 / 2007中使用VBA。 如何将stringvariables的内容复制到剪贴板? 该站点build议创build一个零长度的TextBox,将该string复制到TextBox,然后运行DoCmd.RunCommand acCmdCopy 。 啊。 我的意思是,我们可能会走下去的路线。 但仍然。 啊。 虽然MS知识库文章向我们展示了如何做,但涉及到许多Windows API调用。 育。 这是唯一的两个select吗?

获取Windows下载文件夹的path

我有一些Excel VBA代码,需要知道下载文件夹path。 我怎么能这样做? 由于您可以在Downloads文件夹(以及文档和大多数文件夹,通过文件夹属性)中移动,所以像%USERPROFILE%这样的环境variables是无用的,可以构build一个类似%USERPROFILE%\Downloads的path,而WScript.Shell.SpecialFolders不会列出下载文件夹。 我想这一定是读完registry ,但我对此毫无头绪。 谢谢!

Visual Basic捕获cmd的输出

我希望Visual Basic能够在目录“C:\ projectTest \”上运行“make”命令。 我试图用这个: Dim output As String = String.Empty Using Process As New Process Process.StartInfo = New ProcessStartInfo("cmd") Process.StartInfo.WorkingDirectory = "C:\projectTest\" Process.StartInfo.UseShellExecute = False Process.StartInfo.CreateNoWindow = True Process.StartInfo.RedirectStandardInput = True Process.StartInfo.RedirectStandardOutput = True Process.StartInfo.RedirectStandardError = True Process.Start() Process.BeginOutputReadLine() AddHandler Process.OutputDataReceived, _ Sub(processSender As Object, lineOut As DataReceivedEventArgs) output += lineOut.Data + vbCrLf End […]

在安装32位和64位客户端时,获取MS Office 2013(32位)Excel和Access以连接到Oracle数据库

在我的机器上安装Oracle 11gr2的32位和64位客户端之后,我遇到了Microsoft Office产品的一些问题。 我目前正在使用Microsoft Office 32位运行Windows 7 64位。 我们依赖于一些32位应用程序,并且正在和一群人一起工作 – 他们中的大多数人都有32位的操作系统机器,所以我需要运行Office 32位。 目前,我正在创build和维护一些Excelmacrosfunction的工作簿,我们的工作人员用它来提交信息来访问数据库。 访问数据库使用sqora32.dll驱动程序连接到oracle,并使用oraclient11.dll连接excel工作簿。 我最近得到了一个ArcGIS Pro的版本,它需要一个64位的oracle客户端,并且已经在我们的生产环境中进行了testing。 我以为我已经成功地安装了64位Oracle即时客户端(我拥有32位Oracle客户端的完整pipe理员版本),因为一切运行良好。 我的32位软件的其余部分连接好。 但是,当我尝试通过访问build立一个oracle连接,驱动程序失败,或者我得到一个kernelbase错误和Access完全崩溃。 当我通过Excel vba尝试查询时,从Oracle ODBC Driver中得到一个错误。 它说,内部错误 – 无法在驱动程序加载期间初始化NLS。 我的事件日志显示oraclient11.dll失败。 当我尝试使用“以pipe理员身份运行”选项连接时,应用程序不会完全崩溃,他们只是停止工作。 我已经尝试卸载并重新安装32位oracle客户端,设置oracle_home环境variables,使用c:\​​ windows \ system32中的软链接,并更改PATH环境variables中条目的顺序,并设置NLS_LANG环境variables。 我真的很想弄清楚这一点,而不必find另一台机器来testingPro。 任何人都可以帮我解决这个问题吗? 由于我的32位软件连接正确,我认为这与Office试图使用64位驱动程序有关,但我不是这方面的专家。 所以,我不知道。 任何帮助将非常感激。 如果之前已经回答了,请提供一个链接? 我一直在上周的大部分时间里一直在search这个,并且一直无法find解决我的特定问题的任何事情。

我怎样才能使用VBA执行一个shell命令?

我想要使​​用Visual Basic for Applications执行如下的shell命令。 C:\Temp\gc.exe 1 我该怎么做?

在Windows和Mac上将Excel文件另存为PDF

我已经创build了一个macros来将我的工作表导出为PDF,但公司中的一些用户使用Mac OS。 当这些用户试图保存时,会给他们一个错误。 如何让Win和Mac用户使用相同的PDF导出? 这是我现在的代码: Sub CreatePDF() Dim wksSheet As Worksheet Set wksSheet = ActiveSheet wksSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ ThisWorkbook.Path & "\" & Range("exportName"), Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ False End Sub