我想知道是否可以创建一个vbs文件来突出显示excel工作簿中的单元格。
我有一个包含多个计算机主机名的excel工作表,我还批量运行一个脚本,在文本文档中ping每个主机名。如果ping结果成功,我想调用vbs文件突出显示excel中的单元格。这可能吗?
谢谢!
迪米特里
答案 0 :(得分:1)
有很多方法可以做到这一点,但我必须问你为什么要在Excel中使用批处理脚本和文本文件来ping主机名?
有两种方法可以做到这一点......一种方法更复杂,更正确,另一种方法又快又脏。坦率地说,我建议快速而肮脏。
正确的方式: 声明ReadConsole&来自Windows kernel32.dll的WriteConsole方法,并利用它们来获取ping的结果。这里描述得很好:
http://visualbasic.about.com/od/learnvb6/l/bldykvb6dosa.htm
< Q& D Way: 在VBA中使用内置的Shell()函数,并将ping的输出传递给文本文件。解析所述文本文件并在完成后将其删除。e.g。
for each currCell in hostnameRange
' Ping each hostname and pipe the results to a file
shell "ping " + currCell.value + " >> ping_result.txt"
next currCell
inFile = FreeFile()
Open "ping_result.txt" for Input as #inFile
fileBuffer = Input$(LOF(inFile ), inFile) ' Open and read the file to a buffer
for each currCell in hostnameRange
' Search for ping failures in the buffer
if instr(1, fileBuffer, "could not find host " + currCell.value) = 0 then
debug.print "Ping successful."
end if
next currCell