2016-02-28 40 views
0

空間吧,我想寫在Excel宏所以每次我打空格鍵(當我在列我)我要自動發送「太空斜線和空間時間再次」。自動加空格和/當我按在Excel 2003

我按下鍵盤上的空格鍵和結果我得到的空間斜線空間。

我想這只是發生時,即時通訊在細胞上列一

感謝

回答

0

使用Worksheet_Change事件宏替換與空間斜線空間的空間時,已列內改變所在的值I.

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not Intersect(Target, Columns(9)) Is Nothing Then 
     On Error GoTo bm_Safe_Exit 
     Application.EnableEvents = False 
     Dim rng As Range 
     For Each rng In Intersect(Target, Columns(9)) 
      'make safe anything that already has been changed 
      rng = Replace(rng.Value2, "/", ChrW(8203)) 
      'change new spaces 
      rng = Chr(39) & Replace(rng.Value2, Chr(32), "/") 
      'try to repait Excel's auto-date-conversion 
      If IsDate(rng) Then Application.Undo 
      'restore the safeties 
      rng = Replace(rng.Value2, ChrW(8203), "/") 
     Next rng 
    End If 

bm_Safe_Exit: 
    Application.EnableEvents = True 
End Sub 

提供一些樣本數據總是一個好主意。我遇到了一些麻煩與Excel自動轉換的轉換價值爲日期,不得不通過在自動更正申請Application.Undo訴諸有點「bandaiding」。嘗試暫時關閉自動更正可能更好,或者根本不需要。

或者,Workbook_SheetChange事件宏可以使整個工作簿中的過程更加全局化,並且可以過濾工作表名稱以接受非過程。

+0

你的答案是工作的更好,然後我的。謝謝 – user5992797

0

私人小組Worksheet_Change(BYVAL目標作爲範圍) 如果Target.Columns.Count = 1然後 如果Target.Cells.Count = 1然後 如果Target.Column =範圍( 「I:I」)。柱然後 Application.EnableEvents =假 Target.Value = REPLACE(Target.Value, 「」, 「/」) Application.EnableEvents =真 結束如果 結束如果 結束如果
結束子

上面的代碼將按照輸入後的描述轉換空間按鈕。當您處於編輯模式時,它不會替換空間。