【问题标题】:Change Font color and alignment in Excel by VBA通过 VBA 在 Excel 中更改字体颜色和对齐方式
【发布时间】:2017-07-28 20:27:29
【问题描述】:

要求是:

我有一个固定的 EXCEL 模板,其中从第 4 行到第 10 行(将来可能会更多)将每天从 CSV 中删除和添加。 现在我的 VBS 正在从 excel 中删除现有记录并从 CSV 中放入数据。这是完美的工作。在需要进行小的更改之后,是否可以动态删除现有行 即今天我有 10 行,所以它正在清除 10,明天如果有 20 行,它可以清除这些记录并根据 CSV 中的输入行号插入。

这是我现有的代码:

srccsvfile = Wscript.Arguments(0)
tgtxlsfile = Wscript.Arguments(1)

'Create Spreadsheet
'Look for an existing Excel instance.
On Error Resume Next ' Turn on the error handling flag
Set objExcel = GetObject(, "Excel.Application")
'If not found, create a new instance.
If Err.Number = 429 Then  '> 0
  Set objExcel = CreateObject("Excel.Application")
End If

objExcel.Visible = False
objExcel.DisplayAlerts = False

'Import CSV into Spreadsheet
Set objWorkbookSrc = objExcel.Workbooks.Open(srccsvfile)
Set objWorksheetSrc = objWorkbookSrc.Worksheets(1)
Set objWorkbookTgt = objExcel.Workbooks.Open(tgtxlsfile)
Set objWorksheetTgt = objWorkbookTgt.Worksheets("Report")
'Adjust width of columns
Set objRange = objWorksheetSrc.UsedRange
objRange.Borders.LineStyle = 1
Set objRangeToCopy = objRange.Resize(objRange.Rows.Count - 1).offset(1)
objWorksheetTgt.Rows(4).Resize(10).Clear

objRangeToCopy.Copy objWorksheetTgt.Range("A4")

aList = Array("NOT ", "NO ", "NONE", "!")
For Each Item In aList
            For Each c In objWorksheetTgt.UsedRange
                If InStr(1, c.Value, Item) > 0 Then
                    c.Interior.ColorIndex = 6
                End If
            Next
Next

'Save Spreadsheet, 51 = Excel 2007-2010
objWorkbookTgt.Save
objWorkbookTgt.Close(False)
objWorkbookSrc.Close(False)

'Release Lock on Spreadsheet
objExcel.Quit()
Set objWorksheetSrc = Nothing
Set objWorkbookSrc = Nothing
Set objWorksheetTgt = Nothing
Set objWorkbookTgt = Nothing
Set objExcel = Nothing

终于画龙点睛。 需要在 Excel 中将这些数据写入字体:ABC_Font 和大小:10 并且基于某些 column_name 需要 Center/Right,即名称和位置值应该是“Center”,电话号码应该是“Align Center”和 "WrapText" 。并且还需要换行符。 这也可能吗??

我尝试在 excel 宏中完成这项工作。并找到下面的代码,认为它会使我的脚本最终化,但它不起作用。

现在我需要将下面的示例代码放入我现有的上述代码中,我将其作为 txt 文件附加以供您参考。我附上了样本 excel 和 csv。

Range("A4:F13").Select
    With Selection.Font
        .Name = "Trebuchet MS"
        .Size = 10
    End With

Range("A4:A13").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = True
        .ReadingOrder = xlContext
        .MergeCells = False
    End With

这是我的 CSV

Name,Location,Phone,Comment1,Comment2,comment3
"ABC!","Pune",123,"Expert Value","! Easy","Popular"
"XYZ","Kol",567,"! Expert value",Easy,"!Credit"
"PQR","Mum",234,"NOT value","Value for money","Debit"
"RST","DEL",0,"Value","NO value","N/A"
"Ram","KOL",100,"NO Value","value","N/A"
"XYZ","Kol",567,"! Expert value","!Easy","!Credit"
"qwer","DEL",567,"Expert value","Easy","!Credit"
"cvbn","Pune",567,"! Expert value","!Easy","!Debit"
"rtyu","DEL",567,"! Expert value","Easy","!Credit"
"kllo","Pune",567,"Expert value","NOT Easy","!Bad"

这是我目前输出的 Excel 截图

但我想要这样的输出。

【问题讨论】:

  • 抱歉,有什么问题吗?和格式有关系吗?或者如何删除行?
  • 有 2 个代码 sn-p...和 ​​2 个 excel 屏幕截图.....我有第一个代码输出是第一个屏幕截图...现在我必须将第二个代码添加到第一个这样我的输出就像第二个屏幕截图
  • 不要使用 Select ... Selection 使用这个With Range("A4:F13").Font

标签: vba excel csv vbscript


【解决方案1】:

只需将格式代码复制并粘贴到主代码中的保存点之前

【讨论】:

  • 我的代码已经添加到我的帖子中了......你到底需要什么兄弟?
  • 它不工作兄弟...我试过这个..code With Range("A4:F13").Font .Name = "Trebuchet MS" .Size = 10 End Withcode
【解决方案2】:

单元格集 .WrapText = True .

     With Range("A4:F13")
        With .Font
            .Name = "Trebuchet MS"
            .Size = 10
        End With
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = True
        .EntireRow.AutoFit
    End With
    With Range("A4:A13")
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = True
    End With

【讨论】:

  • 不工作....和以前一样...更改代码输出后,excel应该更改字体大小...默认Calibri为11号
猜你喜欢
  • 1970-01-01
  • 2013-03-21
  • 2013-05-28
  • 2012-08-31
  • 2014-04-28
  • 2021-05-15
  • 2023-03-22
  • 2012-02-02
  • 2020-12-13
相关资源
最近更新 更多