[英]VBA to paste data on the cells without changing format
我有一台啟用了宏的受保護的工作簿,其中允許用戶僅編輯所有工作表上的某些字段或行(150到200)。
問題是我無法在可編輯字段上設置格式,因此當用戶在字段上復制任何內容時,它將采用源格式,並且會使工作表混亂。
我嘗試使用以下內容,但沒有幫助。 請提出建議。
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Target.PasteSpecial xlPasteValues
Application.CutCopyMode = True
End Sub
試一下:
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Row >= 150 And Target.Row <= 200 Then
Dim vNewValues as Variant
NewValues = Target
Application.EnableEvents = False
Application.Undo
Target = NewValues
Application.EnableEvents = true
End If
End Sub
它的工作方式是將新值(復制或輸入到單元格中的值)存儲到數組中,然后執行撤消操作,這將刪除操作(以及任何不希望的格式),然后僅將值(來自存儲的數組)放入范圍。
If
條件可能需要根據您的實際要求進行調整。
Range.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks
應該只復制值,而不復制初始范圍內的格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.