小编nix*_*xda的帖子

Workbooks.OpenText 不采用“fieldinfo”参数

以下代码演示了问题标题中所述的问题。

将其复制并粘贴到新的 Microsoft Excel 2003 工作簿中。

Sub mytest()
    mypath = Application.GetSaveAsFilename()

    Workbooks.OpenText Filename:=mypath, DataType:=xlDelimited, _ 
        TextQualifier:=xlTextQualifierDoubleQuote, _ 
        semicolon:=True, _ 
        fieldinfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2)), _ 
        Local:=True
End Sub
Run Code Online (Sandbox Code Playgroud)

执行代码。它将要求输入文件,您应该在其中使用此分号分隔的test.csv。它创建一个新工作簿并将所有数据从 test.csv 导入到 sheet1。

下图显示了结果
在此处输入图片说明

但它应该显示这样的结果
在此处输入图片说明


fieldinfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2))
声明 Excel 应将所有导入的数据视为文本。不幸的是它没有。

有人可以告诉我如何以正确的方式使用 opentext 和 fieldinfo 吗?

我已经知道 QueryTables.Add(Connection[...]
的解决方法。但这不是我的情况的解决方案。

vba parameter-passing ms-office excel-2003

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

批量替换多个不同的字符串

我发现下面的解决方案替换字符串,但我不完全理解它.
如何更改代码以每行替换3个字符串?
我的更改(第12行和第13行)尚未生效.

没有运行第二个和第三个循环是否可能?

ECHO off
SETLOCAL enabledelayedexpansion

SET source="C:\source.srt"
SET target="C:\target.srt"

IF EXIST %target% DEL /f %target%

FOR /f "delims=" %%i IN ('FINDSTR . %source%') DO (
   SET line=%%i
   SET line=!line:ö=oe!
   SET line=!line:ä=ae!
   SET line=!line:ü=ue!
   ECHO !line! >> %target%
)
Run Code Online (Sandbox Code Playgroud)

windows string replace batch-file

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

如何使用Powershell将CSV导出到Excel

我正在尝试使用Powershell将完整的CSV导出到Excel.我坚持使用静态列名称.但是,如果我的CSV具有通用的未知标头名称,则此功能无效.

重现步骤

打开PowerShell ISE并复制并粘贴以下独立代码.使用"C:\ Windows\system32\WindowsPowerShell\v1.0\powershell_ise.exe"运行它F5

Get-Process | Export-Csv -Path $env:temp\process.csv -NoTypeInformation

$processes = Import-Csv -Path $env:temp\process.csv 
$Excel = New-Object -ComObject excel.application 
$workbook = $Excel.workbooks.add() 

$i = 1 
foreach($process in $processes) 
{ 
 $excel.cells.item($i,1) = $process.name
 $excel.cells.item($i,2) = $process.vm
 $i++ 
} 
Remove-Item $env:temp\process.csv
$Excel.visible = $true
Run Code Online (Sandbox Code Playgroud)

它能做什么

  1. 该脚本将所有活动进程的列表作为CSV导出到临时文件夹.此文件仅适用于我们的示例.它可以是包含任何数据的任何CSV
  2. 它读入新创建的CSV并将其保存在$processes变量下
  3. 它创建了一个新的空Excel表工作簿,我们可以在其中编写数据
  4. 它遍历所有行(?)并将namevm列中的所有值写入Excel

我的问题

  • 如果我不知道列标题怎么办?(在我们的例子中namevm).如何解决我不知道其标题名称的值?
  • 如何计算CSV有多少列?(看完之后Import-Csv)

我只想用Powershell将整个CSV写入Excel

excel powershell export-to-excel windows-7 office-2013

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

如何使用Jscript打印文件

目标

我想通过PDF打印机打印文件,这不是默认打印机.我能够将普通打印机暂时更改为PDF打印机.

问题

但我不知道如何通过Jscript打印.doc,.txt或.xls.此外,我找不到保存默认打印机名称的方法,因此我可以在打印文件后切换回来.

Jscript代码

var objShell = new ActiveXObject("Shell.Application");
var objFSO = new ActiveXObject("Scripting.FileSystemObject");    

try {
  var PDFCreatorQueue = new ActiveXObject("PDFCreatorBeta.JobQueue");
  PDFCreatorQueue.Initialize();

  var sourceFile   = WScript.Arguments(0)
  var sourceFolder = objFSO.GetParentFolderName(sourceFile)
  var sourceName   = objFSO.GetBaseName(sourceFile)
  var targetFile   = sourceFolder + "\\" + sourceName + ".pdf"  

  //HERE GOES THE COMMAND TO SAVE THE CURRENT DEFAULT PRINTER NAME TO A TEMP VARIABLE
  objNet.SetDefaultPrinter("PDFCreator");
  //HERE GOES THE PRINT COMMAND WHICH I DON'T KNOW
 // HERE GOES THE COMMAND TO CHANGE BACK TO THE …
Run Code Online (Sandbox Code Playgroud)

windows-7-x64 jscript

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

Powerpoint VBA:如何从 Excel 工作表中获取行中最后使用的列

问:如何从 Excel 工作表中获取特定行中最后使用的列。
虽然使用 Excel VBA 这是一项简单的任务,但使用 Powerpoint VBA 则更加困难。

这是我的 Excel 工作表的示例

在此输入图像描述

重现步骤

  • 创建并保存一个新的 Excel 工作表,如上面的示例
  • 打开一个新的 PowerPoint 演示文稿并点击ALT+F11进入 VBA 编辑器
  • 插入下面的代码并在第 3 行中自定义测试 Excel 文件的路径
  • 使用以下命令每行执行代码行F8
Sub findlastcolumn()

    Set objExcel = CreateObject("Excel.application")
    Set objWorkbook = objExcel.Workbooks.Open("C:\Users\<USERNAME>\Desktop\data.xls")

    objExcel.Visible = True

    'works in Powerpoint VBA but delivers the wrong column
    lastcol = objWorkbook.Sheets(1).UsedRange.Columns.Count

    'produces an error in Powerpoint VBA
    'but works in Excel VBA, correct column in Excel VBA
    lastcol = objWorkbook.Sheets(1).Cells(1, …
Run Code Online (Sandbox Code Playgroud)

powerpoint vba excel-2003

3
推荐指数
1
解决办法
3782
查看次数

如何在文件名中创建包含特殊字符的文本文件

演示我的问题

  • 打开一个新的Excel工作簿并将这些符号设置为单元[A1]
  • 在编辑器中的某处插入以下VBA代码(Alt+ F11)
  • 每行执行一行(F8)
Sub test()

    strCRLF = StrConv(vbCrLf, vbUnicode)
    strSpecialchars = StrConv(Cells(1, 1), vbUnicode)
    strFilename = "c:\test.txt"

    Open strFilename For Output As #1
    Print #1, strSpecialchars & strCRLF;
    Close #1

End Sub

您将获得一个包含[A1]中文字符的文本文件.这证明了如果你知道添加的技巧,VBA能够处理unicode字符StrConv(vbCrLf, vbUnicode)

现在尝试相同的strFilename = "C:\" & strSpecialchars & ".txt".您将收到一个错误,您无法使用此文件名创建文件.当然,你不能使用相同的技巧添加一个新行,因为它的文件名.

如何使用VBA在文件名中创建包含特殊字符的文本文件?
是否有解决方法或我做错了什么?

注意

vba excel-2003 createfile

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

以"HH:mm:ss,fff"格式计算字符串的总秒数

在PowerShell V2中,我想计算给定字符串的总秒数和毫秒数.
我的字符串是00:03:56,908,所需的输出将是236.908

我的工作,但尴尬的代码是

$a = "00:03:56,908"
$a = [datetime]::ParseExact($a,"HH:mm:ss,fff",$null)
[string]($a.Hour*3600 + $a.Minute*60 + $a.Second) +"."+ [string]$a.Millisecond
Run Code Online (Sandbox Code Playgroud)

是否有更智能/更短的方法来实现这一目标?


我发现的只是TimeSpan对象的.totalseconds.但是这个代码在我的尝试中更长

powershell powershell-2.0 windows-7-x64

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

通过 Powershell 获取 Google 搜索结果

假设您只有音乐文件中的艺术家标题,但不知道专辑名称。

当您在 Chrome 中使用Google 搜索 ieGolden Earring Radar Love Album时,您会得到:

在此输入图像描述

您可以看到专辑名称(Moontan)、发行日期(1973 年 7 月)甚至正确的专辑封面。该页面部分如何命名?谷歌预览?谷歌即时页面?我不知道

我的问题是

如何通过 PowerShell 以编程方式获取这些信息?

我尝试过的

  1. Invoke-Webrequest:不起作用,特定内容未响应

    $Response = Invoke-WebRequest -URI "https://www.google.com/search?hl=en&q=Golden+Earring+Radar+Love+Album"
    $Response.content | Set-Content D:\test.txt
    
    Run Code Online (Sandbox Code Playgroud)
  2. XmlHttpRequest:不起作用,特定内容未响应

    $objXmlHttp = New-Object -ComObject MSXML2.ServerXMLHTTP
    $objXmlHttp.Open("GET", "https://www.google.com/search?hl=en&q=Golden+Earring+Radar+Love+Album")
    $objXmlHttp.Send()
    $objXmlHttp.responseText | Set-Content D:\test.txt
    
    Run Code Online (Sandbox Code Playgroud)
  3. Invoke-RestMethod:不起作用,仅检索 URL 及其片段

    $Response = Invoke-RestMethod -Uri 'https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Golden%20Earring%20Radar%20Love%20Album'
    $Response.responseData.results
    
    Run Code Online (Sandbox Code Playgroud)
  4. 我寻找可以在 PowerShell 中使用的Google Play 或 Google Music API

我认为问题在于,这些信息是通过 Javascript 加载的,而在使用Invoke-WebRequest等方法时,Javascript 不会执行这些信息。我在这里可能是错的。

我看到两种解决方案:1)在 PowerShell 中模仿 Web …

powershell windows-7 powershell-4.0

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