簡體   English   中英

VBA將數據粘貼到單元格上而不更改格式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM