【问题标题】:Two Excel Questions -- finding string values and saving the excel spreadsheet两个 Excel 问题 - 查找字符串值并保存 Excel 电子表格
【发布时间】:2012-09-13 14:54:05
【问题描述】:

我正在制作一个输出到 Excel 电子表格的 vbscript。 这将在不同的日子在多个系统上运行,所以我想命名电子表格 主机名和日期.xls

我怎样才能保存它,我一直在谷歌搜索但找不到它。

另外,我只有两列,但第二列中的一些文本将是“测试通过”或“测试失败”。大约有25行。我想让它在第二列中有“测试通过”的行是绿色的,然后是红色的,反之亦然。

我该怎么办?

【问题讨论】:

  • 我没有说清楚,抱歉。我还需要搜索该列中的每个单元格,看看它是“PASSED”还是“FAILED”。

标签: excel vbscript


【解决方案1】:

我更喜欢条件格式:

  With Table1.Range("$A:$A,$B:$B").FormatConditions.Add( _
        Type:=xlExpression, _
        Formula1:="=AND($B1=""Y"")")

   .Interior.Color = RGB(255, 0, 0)
  End With

  With Table1.Range("$A:$A,$B:$B").FormatConditions.Add( _
        Type:=xlExpression, _
        Formula1:="=AND($B1=""X"")")

   .Interior.Color = RGB(0, 255, 0)
  End With

随意将 Table1 替换为任何其他表格对象。

这将添加新的格式条件每次执行此代码。

要创建文件名,您可以使用Format(Now,"dd/mm/yyyy") 和 Omnikrys 的代码 - 或 FileDialog-Object

这里是一个完整的例子:

ActiveWorkbook.SaveAs Environ$("computername") & "_" & Format(Now, "dd-mm-yyyy") & ".xlsx"

【讨论】:

  • 当我执行 objExcel.ActiveWorkbook.SaveAs Format(Now,"dd/mm/yy") 我得到一个类型不匹配
  • Environ$ 只是一个 VB 变量,而不是一个 VBScript...hmmmm
【解决方案2】:
ActiveWorkbook.SaveAs *filename*

Cells(1, 1).Font.ColorIndex = 3 
Cells(1, 1).Font.Bold = TRUE
Cells(1, 1).Font.Size = 12

等等

如果我记得红色是 3,绿色是 4。此外,任何范围对象都应该用于更改样式属性,如字体。所以范围、选择等将起作用。

要获得新的文件名,我会使用以下代码...

Set objSysInfo = CreateObject( "WinNTSystemInfo" )
filename = objSysInfo.ComputerName & "-" & Year(Now) & right("00" & Month(Now), 2) & ".xls"
WScript.Echo Replace(WScript.ScriptFullName, WScript.ScriptName, filename) 

【讨论】:

  • 没想到这么简单。我注意到电子表格自动保存到“我的文档”。我的代码只是 objExcel.ActiveWorkbook.SaveAs “测试”。我想将电子表格放在运行我的脚本的同一目录中......这将是不同系统上的不同目录。有什么建议吗?
  • 我添加了几行代码,这些代码将为您提供您想要执行的 SaveAs 的完整文件路径/名称。
猜你喜欢
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
  • 2016-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多