With xlSheet.PageSetup
        .LeftHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10公司名称:"   ' & Gsmc
        .CenterHeader = "&""楷体_GB2312,常规""公司人员情况表&""宋体,常规""" & Chr(10) & "&""楷体_GB2312,常规""&10日 期:"
        .RightHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10单位:"
        .LeftFooter = "&""楷体_GB2312,常规""&10制表人:"
        .CenterFooter = "&""楷体_GB2312,常规""&10制表日期:"
        .RightFooter = "&""楷体_GB2312,常规""&10第&P页 共&N页"
    End With
我想用一个变量传递页眉,而不是固定的“公司人员情况表”怎么做呢?

解决方案 »

  1.   

    公司人员情况表
    =>
    "& 变量 &"
      

  2.   

    如果输出引号(")字符,则用两个引号“""”,例如:Dim str As String
    str = "这里面包含了引号""字符"
    Debug.Pring str
    立即窗口输出:
    这里面包含了引号"字符
      

  3.   

    应该是
    " & 变量 & "
      

  4.   

    应该是
    " & 变量 & "
      

  5.   

    如上例:
    .RightFooter = "&""楷体_GB2312,常规""&10第&P页 共&N页"持运行后 .RightFooter 的值是下面的字符串(包括引号字符):&"楷体_GB2312,常规"&10第&P页 共&N页
      

  6.   

    应该这样xlSheet.PageSetup.CenterHeader = "&""宋体,加粗"""+sProjectName
      

  7.   

    其实任何操作妳自己到Excel中录制宏,看一下宏代码就知道了
      

  8.   

    xlSheet.Range(单元格).Font.Color = vbRed
      

  9.   

    没有Format或sprintf的vb字符串,可悲啊~~~~可以自己模拟sprintf写了个vb函数,这样就不会这么眼花了
      

  10.   

    只有两点要记住& 表示连接字符串 , 字符串内的" 用 "" 表示剩下自己分析就可以啦
      

  11.   

    VBNet3000(努力学习VB.Net,虚心做人) 兄,你有什么好办法么
      

  12.   

    Find 方法
    请参阅 应用于 示例 特性 
    应用于 WorksheetFunction 对象的 Find 方法。在工作表中查找特定信息。expression.Find(Arg1, Arg2, Arg3)expression   必需。该表达式返回一个 WorksheetFunction 对象。Arg1   String 类型,必需。工作表名称。Arg2   String 类型,必需。单元格区域名称。Arg3   Variant 类型,可选。精确限制查询的参数名称。应用于 Range 对象的 Find 方法。在区域中查找特定信息,并返回 Range 对象,该对象代表用于查找信息的第一个单元格。如果未发现匹配单元格,就返回 Nothing。本方法不影响选定区域或活动单元格。有关在 Visual Basic 中使用 Find 工作表函数的详细信息,请参阅在 Visual Basic 中使用工作表函数。expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SerchFormat)expression   必需。该表达式返回一个 Range 对象。What   Variant 类型,必需。要搜索的数据。可为字符串或任意 Microsoft Excel 数据类型。After   Variant 类型,可选。表示搜索过程将从其之后开始进行的单元格。此单元格对应于从用户界面搜索时的活动单元格位置。值得注意的是,After 必须是区域中的单个单元格。请记住搜索是从该单元格之后开始的;直到本方法绕回到指定的单元格时,才对其进行搜索。如果未指定本参数,搜索将从区域的左上角单元格之后开始。LookIn   Variant 类型,可选。信息类型。LookAt   Variant 类型,可选。可为以下 XlLookAt 常量之一:xlWhole 或 xlPart。SearchOrder   Variant 类型,可选。可为以下 XlSearchOrder 常量之一:xlByRows 或 xlByColumns。SearchDirection   XlSearchDirection 类型,可选。搜索的方向。XlSearchDirection 可为以下 XlSearchDirection 常量之一。 
    xlNext 默认值 
    xlPrevious MatchCase   Variant 类型,可选。若为 True,则进行区分大小写的查找。默认值为 False。MatchByte   Variant 类型,可选。仅在选择或安装了双字节语言支持时使用。若为 True,则双字节字符仅匹配双字节字符。若为 False,则双字节字符可匹配其等价的单字节字符。SearchFormat   Variant 类型,可选。搜索的格式。说明
    每次使用本方法后,参数 LookIn、LookAt、SearchOrder 和 MatchByte 的设置将保存。如果下次调用本方法时不指定这些参数的值,就使用保存的值。设置这些参数将更改“查找和替换”对话框中的设置,如果您忽略参数,更改“查找和替换”对话框中的设置将更改使用的保存值。若要避免这种问题的出现,每次使用该方法时请明确设置这些参数。可以使用 FindNext 和 FindPrevious 方法重复搜索。当搜索到指定的搜索区域的末尾时,本方法将绕回到区域的开始继续搜索。发生绕转后,若要停止搜索,请保存第一个找到的单元格地址,然后依据该保存地址测试每个后续查找到的单元格地址。若要进行更为复杂的模式匹配查找,请用 For Each...Next 语句和 Like 运算符。例如,下列代码在单元格区域 A1:C5 中搜索字体名称以“Cour”开始的单元格。当 Microsoft Excel 找到匹配单元格以后,就将其字体改为“Times New Roman”。For Each c In [A1:C5]
        If c.Font.Name Like "Cour*" Then
            c.Font.Name = "Times New Roman"
        End If
    Next
    示例
    本示例在工作表的单元格区域 A1:A500 中查找包含值 2 的所有单元格,并将这些单元格的值更改为 5。With Worksheets(1).Range("a1:a500")
        Set c = .Find(2, lookin:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.Value = 5
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
      

  13.   

    FindNext 方法
    请参阅 应用于 示例 特性 
    继续执行用 Find 方法启动的搜索。查找下一个匹配相同条件的单元格并返回代表单元格的 Range 对象。不影响选定区域或当前单元格。expression.FindNext(After)expression   必需。该表达式返回一个 Range 对象。After  Variant 类型,可选。指定一个单元格,查找将从该单元格之后开始。此单元格相应于从用户界面查找时的活动单元格位置。注意,After 必须是查找区域中的单个单元格。请记住查找是从该单元格之后开始的;直到本方法环绕到此单元格时,才检测其内容。如果未指定本参数,查找将从区域的左上角单元格之后开始。说明
    当查找到指定查找区域的末尾时,本方法将环绕至区域的开始继续搜索。发生环绕后,为停止查找,可保存第一次找到的单元格地址,然后测试下一个查找到的单元格地址是否与其相同。示例
    本示例在单元格区域 A1:A500 中查找值为 2 的单元格,并将这些单元格的值变为 5。With Worksheets(1).Range("a1:a500")
        Set c = .Find(2, lookin:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.Value = 5
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
      

  14.   

    FindPrevious 方法
    请参阅 应用于 示例 特性 
    继续执行用 Find 方法启动的搜索。查找匹配相同条件的前一个单元格并返回代表单元格的 Range 对象。不影响选定区域或当前单元格。expression.FindPrevious(After)expression   必需。该表达式返回一个 Range 对象。After  Variant 类型,可选。指定一个单元格,查找将从该单元格之前开始。此单元格相应于从用户界面查找时的活动单元格位置。注意,After 必须是查找区域中的单个单元格。请记住查找是从该单元格之前开始的;直到本方法环绕到此单元格时,才检测其内容。如果未指定本参数,查找将从区域的左上角单元格之前开始。说明
    当查找到指定查找区域的起始位置时,本方法将环绕至区域的末尾继续搜索。发生环绕后,为停止查找,可保存第一次找到的单元格地址,然后测试下一个查找到的单元格地址是否与其相同。示例
    本示例演示 FindPrevious 方法如何与 Find 方法和 FindNext 方法共用。运行本示例之前,请确保 Sheet1 的 B 列中至少出现过两次“Phoenix”。Set fc = Worksheets("Sheet1").Columns("B").Find(what:="Phoenix")
        MsgBox "The first occurrence is in cell " & fc.Address
    Set fc = Worksheets("Sheet1").Columns("B").FindNext(after:=fc)
        MsgBox "The next occurrence is in cell " & fc.Address
    Set fc = Worksheets("Sheet1").Columns("B").FindPrevious(after:=fc)
        MsgBox "The previous occurrence is in cell " & fc.Address
      

  15.   

    谢谢各位,特别是XunBaian(蓝水晶) ,其实很好的一个解决方法是直接全选报表,然后用格式-条件格式,单元格数值=“不合格”,格式选红色就可以啦,这样写进去的每个“不合格”都会变为红色