返回列表 上一主題 發帖

欄位變換

欄位變換

本帖最後由 sillykin 於 2014-12-31 13:16 編輯

(詳如『檔案說明』)如何運用在此程式呢?????(不太會加);如果『取消』要恢復原來值
Dim lRows As Long, lRow As Long
  Dim iI%
  
  lRows = Cells(Rows.Count, 1).End(xlUp).Row
  
For lRow = 3 To lRows
  With Cells(lRow, 1)
    Select Case .Offset(, 16)
    Case "單位主管"
      If Left(.Value, 1) <> "*" Then
        .Value = "*" & .Value

         .Offset(, 14) = .Offset(, 15)
           .Offset(, 3) = .Offset(, 1)
      End If
      
    Case "文字"
      If Right(.Value, 1) <> "*" Then .Value = .Value & "*"
   
       .Offset(, 14) = .Offset(, 15)
    Case "總務"
            
      .Offset(, 14) = .Offset(, 15) * 1.1
         
   Case ""
            
      .Offset(, 14) = .Offset(, 15)
            
    End Select
   
  End With
Next lRow
      
End Sub

說明檔.zip (11.44 KB)

轉換

你還是提供完整的報表吧

    Select Case .Offset(, 16)
    Case "單位主管"
    Case "總務"
    Case "文字"
....

.Offset(, 16) 那一行根本找不到 "單位主管", "總務", "文字"...

TOP

那位大大能否幫解呢????

TOP

回復 3# sillykin


     .Offset(, 2) = Mid(.Value, 2, Len(.Value) - 2) & "(" & .Offset(, 2) & ")"
如果要設定『取消』上述變回原來的『值』...要如何去設定呢??

TOP

回復 2# luhpro
謝謝大大的回覆
是這個答案...但執行第二次就累加..能否不讓他一直累加型態?
如果要『回覆成原本型態』.要如何去設定呢???

TOP

(詳如『檔案說明』)如何運用在此程式呢?????(不太會加);如果『取消』要恢復原來值
Dim lRows As Long, ...
sillykin 發表於 2014-12-31 13:14

是這樣嗎?

Case "單位主管" 區塊中 :
      .Offset(, 3) = .Offset(, 1)
改成
     .Offset(, 2) = Mid(.Value, 2, Len(.Value) - 2) & "(" & .Offset(, 2) & ")"

註 :
Offset 中的位移數字要扣掉自身,
即自身右邊那欄是 .Offset( ,1) 而不是 .Offset( ,2)

TOP

        靜思自在 : 脾氣嘴巴不好,心地再好也不能算是好人。
返回列表 上一主題