2016-05-16 89 views
0

我是VBA的新手,我知道刪除線是一種文本格式,我相信它不能在空白單元格中使用。插入文本到同一行,但多列Excel VBA

是否有一個更有效的方法來插入「 - 」到同一行,但從「D」到「G」多列?

請看看我的編碼:

Set Insert = Sheets("Cash").Cells(CashRowName, "D") 
Insert.Value = "-" 

Set Insert = Sheets("Cash").Cells(CashRowName, "E") 
Insert.Value = "-" 

Set Insert = Sheets("Cash").Cells(CashRowName, "F") 
Insert.Value = "-" 

Set Insert = Sheets("Cash").Cells(CashRowName, "G") 
Insert.Value = "-" 

回答

2

您有幾個選項。一種是將StrikeThrough屬性設置爲True,然後用少量空格填充單元格。或者,如果帶有撇號,您可以輸入一些連字符。

喜歡的東西:

Sheets("Cash").Cells(CashRowName, "D").Resize(, 4).Font.StrikeThrough = True 
Sheets("Cash").Cells(CashRowName, "D").Resize(, 4).Value = "   " 

OR:

Sheets("Cash").Cells(CashRowName, "D").Resize(, 4).Value = "'-------" 
2

的Excel允許刪除線的文本,並將其設置爲在空白單元格的格式。 請參考MS文檔:https://support.office.com/en-us/article/Format-text-as-strikethrough-163dd4e8-f413-4474-9c42-aaee8828d647

對於「 - 」的插入部分,可以使用循環方法而不是每行寫入列/行。

' example 
For counter = 1 To 10 
    Sheets(1).Range("A" & counter).Value = "-" 
Next 

但似乎MS文檔將幫助更多。

+0

據我所知,Excel中允許刪除線的文本,但我需要一個空白單元格,除非我寫的東西給它,這是不可能的刪除。 – stupidgal

+0

謝謝!那個鏈接也是我之前讀過的!:D – stupidgal

2

這裏有一種方法:

Sub dural() 
    Dim CashRowName As Long, Insert As Range 
    CashRowName = 6 
    Set Insert = Sheets("Cash").Range("D" & CashRowName & ":G" & CashRowName) 
    Insert.Value = "-" 
End Sub 

(就個人而言,我會改變Long變量CashRowNumber的名稱)

編輯#1:

如果某些範圍中的單元格有文本,有些是空的,並且您希望在填充的單元格上使用刪除線字體,並在空單元格中插入短劃線,然後前:

enter image description here

新的宏:

Sub dural2() 
    Dim CashRowName As Long, Insert As Range 
    Dim cel As Range 

    CashRowName = 6 
    Set Insert = Sheets("Cash").Range("D" & CashRowName & ":G" & CashRowName) 

    For Each cel In Insert 
     cel.Font.Strikethrough = True 
     If cel.Value = "" Then 
      cel.Value = "-" 
     End If 
    Next cel 
End Sub 

後:

enter image description here

+0

謝謝!這真的對我來說是一個新的! – stupidgal

1

一種方法是通過列循環,基於它們的列引用它們編號:

Public Sub DashOutRow(CashRowName as String) 
    Dim i as Long 
    Dim Insert as Excel.Range 

    For i = 4 to 7 'D - G 
    Set Insert = Sheets("Cash").Cells(CashRowName, i) 
    Insert.Value = "'-" 
    Next 
End Sub 

您可以通過將工作表名稱變量或列範圍變量(例如)使其更靈活。

祝你好運!

+0

謝謝你提供的幫助! – stupidgal