VBA:突出显示工作表中的Excel单元格

时间:2013-12-27 16:18:50

标签: excel excel-vba vbscript vba

我想知道是否可以创建一个vbs文件来突出显示excel工作簿中的单元格。

我有一个包含多个计算机主机名的excel工作表,我还批量运行一个脚本,在文本文档中ping每个主机名。如果ping结果成功,我想调用vbs文件突出显示excel中的单元格。这可能吗?

谢谢!

迪米特里

1 个答案:

答案 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