以下代码演示了问题标题中所述的问题。
将其复制并粘贴到新的 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[...]
的解决方法。但这不是我的情况的解决方案。
我发现下面的解决方案替换字符串,但我不完全理解它.
如何更改代码以每行替换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) 我正在尝试使用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)
$processes变量下name和vm列中的所有值写入Excelname和vm).如何解决我不知道其标题名称的值?Import-Csv)我只想用Powershell将整个CSV写入Excel
我想通过PDF打印机打印文件,这不是默认打印机.我能够将普通打印机暂时更改为PDF打印机.
但我不知道如何通过Jscript打印.doc,.txt或.xls.此外,我找不到保存默认打印机名称的方法,因此我可以在打印文件后切换回来.
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) 问:如何从 Excel 工作表中获取特定行中最后使用的列。
虽然使用 Excel VBA 这是一项简单的任务,但使用 Powerpoint VBA 则更加困难。
这是我的 Excel 工作表的示例

重现步骤
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) 演示我的问题
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在文件名中创建包含特殊字符的文本文件?
是否有解决方法或我做错了什么?
注意
在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.但是这个代码在我的尝试中更长
假设您只有音乐文件中的艺术家和标题,但不知道专辑名称。
当您在 Chrome 中使用Google 搜索 ieGolden Earring Radar Love Album时,您会得到:
您可以看到专辑名称(Moontan)、发行日期(1973 年 7 月)甚至正确的专辑封面。该页面部分如何命名?谷歌预览?谷歌即时页面?我不知道
如何通过 PowerShell 以编程方式获取这些信息?
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)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)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)我寻找可以在 PowerShell 中使用的Google Play 或 Google Music API
我认为问题在于,这些信息是通过 Javascript 加载的,而在使用Invoke-WebRequest等方法时,Javascript 不会执行这些信息。我在这里可能是错的。
我看到两种解决方案:1)在 PowerShell 中模仿 Web …
excel-2003 ×3
powershell ×3
vba ×3
windows-7 ×2
batch-file ×1
createfile ×1
excel ×1
jscript ×1
ms-office ×1
office-2013 ×1
powerpoint ×1
replace ×1
string ×1
windows ×1