- 帖子
- 140
- 主題
- 24
- 精華
- 0
- 積分
- 167
- 點名
- 0
- 作業系統
- WIN 7
- 軟體版本
- OFFICE 2007
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2012-2-26
- 最後登錄
- 2023-1-30
|
3#
發表於 2019-7-8 13:30
| 只看該作者
本帖最後由 donod 於 2019-7-8 13:31 編輯
找了關於"插入"的文章,以下還是達不到效果,因為要處理數據很多,無法人手處理,希望大大出手相助,再謝謝!
謝謝GBKEE版大的提供
http://forum.twbts.com/viewthrea ... ighlight=%B4%A1%A4J
工作表上的預設事件(儲存格有改變所觸動事件)- Option Explicit
- Private Sub Worksheet_Change(ByVal Target As Range)
- Dim Rng As Range
- Set Rng = Range("C45:H50") '指定插入新的一列的範圍
-
- If Target.Columns.Count = Rng.Columns.Count Then
- 'Columns.Count:傳回範圍內欄位的總數
- 'Rows.Count:傳回範圍內列位的總數
- If Not Intersect(Rng, Target) Is Nothing And Target.Rows.Count = 1 Then
- 'Intersect 方法 傳回 ***[Range 物件]***,此物件代表兩個或多個範圍重疊的矩形範圍。
- ' Target.Rows.Count = 1 '一列的範圍
- If Target.Cells(1).Column = Rng.Cells(1).Column And Target.Cells(Target.Cells.Count).Column = Rng.Cells(Rng.Cells.Count).Column Then
- 'Target.Cells(1).Column = Rng.Cells(1).Column
- '插入新的一列的第一個欄號=指定插入新的一列的範圍的第一個欄號
- 'Target.Cells(Target.Cells.Count).Column = Rng.Cells(Rng.Cells.Count).Column
- '插入新的一列的最後一個欄號 = 指定插入新的一列的範圍的最後一個欄號
- MsgBox Target.Address
- End If
- End If
- End If
- End Sub
複製代碼 http://forum.twbts.com/viewthread.php?tid=21219&highlight=%B4%A1%A4J- Option Explicit
- Sub Ex()
- Dim A As Range, B As Variant, i As Integer
- For Each A In Range("A1", Range("A1").End(xlDown)) 'A1 往下到最後一筆資料
- B = ""
- For i = 1 To Len(A)
- If Mid(A, i, 1) Like "[A-Z]" Then B = IIf(B = "", Mid(A, i, 1), B & "," & Mid(A, i, 1))
- '找到大寫的字母 導入變數
- Next
- If B <> "" Then '有找到大寫的字母
- B = Split(B, ",") '找到大寫字母的陣列
- For i = 0 To UBound(B)
- A = Replace(A, B(i), " " & B(i)) '加入空格
- Next
- Do While InStr(A, Space(2)) '包含有兩格的空白字元
- A = Replace(A, Space(2), Space(1)) '消除 兩格的空白字元 為一格的空白字元
- Loop
- End If
- Next
- End Sub
複製代碼 |
|