У мене є проблема копіювання / вставлення з одного файлу Excel в інший.
У мене є робоча книжка з формами для введення даних. Нещодавно я додав підпункт для автоматичного використання великих літер.
Private Sub Worksheet_Change(ByVal Target As Range)
' Code goes in the Worksheet specific module
Dim rng As Range
' Set Target Range, i.e. Range("A1, B2, C3"), or Range("A1:B3")
Set rng = Target.Parent.Range("B11:C47")
' Only look at single cell changes
If Target.Count > 1 Then Exit Sub
' Only look at that range
If Intersect(Target, rng) Is Nothing Then Exit Sub
' Action if Condition(s) are met (do your thing here...)
Application.EnableEvents = False
Target.Value = UCase(Application.WorksheetFunction.Substitute(Target.Value, " ", ""))
Application.EnableEvents = True
End Sub
Тепер, коли я копіюю і вставляю діапазон комірок (напр .: B2: B12), які мають порожні комірки, змішані зі старою версією того ж файлу без підпункту, деякі порожні комірки викликають проблеми формули. Це втрачається, якщо активовані порожні вклеєні комірки (двічі клацнуте або видалено).
У мене немає способу змінити старішу версію файлу, оскільки він був розповсюджений для кількох людей і неможливо було б виправити їх усі.
Це, здається, відбувається випадковим чином, оскільки це не всі порожні клітини, які викликають проблему, і це не завжди однакові комірки. Я спробував = CODE (), = VALUE (), = ISTEXT (), = ISNUMBER (), щоб знайти те, що є насправді в комірці, але я не можу отримати жодного значення, тільки що клітина є текстовою (як і всі комірки введення форматуються як текст).
Щоб спробувати відповісти на будь-які питання, які можуть виникнути:
Копіювання / вставлення лише значень тощо ... призводить до того ж випуску
Копіювання / вставлення у кожен файл працює без проблем
Перехід від старого файлу до нового файлу працює
Окрім того, щоб щоразу входити та "видаляти" значення "з усіх" порожніх "комірок, чи існує спосіб запобігти появі цих порожніх вклеєних комірок як необхідних для активації у старому файлі? Я припускаю, що проблема виникає в підгрунті, оскільки цієї проблеми не було в попередніх версіях цього файлу.
РЕДАКТУВАТИ весь код для одного з аркушів, про які йдеться:
Private Sub Worksheet_Activate()
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
End Sub
Private Sub Worksheet_Calculate()
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
' Code goes in the Worksheet specific module
Dim rng As Range
' Set Target Range, i.e. Range("A1, B2, C3"), or Range("A1:B3")
Set rng = Target.Parent.Range("B11:C47")
' Only look at single cell changes
If Target.Count > 1 Then Exit Sub
' Only look at that range
If Intersect(Target, rng) Is Nothing Then Exit Sub
' Action if Condition(s) are met (do your thing here...)
Application.EnableEvents = False
Target.Value = UCase(Application.WorksheetFunction.Substitute(Target.Value, " ", ""))
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Deactivate()
End Sub
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
End Sub
Private Sub Worksheet_PivotTableAfterValueChange(ByVal TargetPivotTable As PivotTable, ByVal TargetRange As Range)
End Sub
Private Sub Worksheet_PivotTableBeforeAllocateChanges(ByVal TargetPivotTable As PivotTable, ByVal ValueChangeStart As Long, ByVal ValueChangeEnd As Long, Cancel As Boolean)
End Sub
Private Sub Worksheet_PivotTableBeforeCommitChanges(ByVal TargetPivotTable As PivotTable, ByVal ValueChangeStart As Long, ByVal ValueChangeEnd As Long, Cancel As Boolean)
End Sub
Private Sub Worksheet_PivotTableBeforeDiscardChanges(ByVal TargetPivotTable As PivotTable, ByVal ValueChangeStart As Long, ByVal ValueChangeEnd As Long)
End Sub
Private Sub Worksheet_PivotTableChangeSync(ByVal Target As PivotTable)
End Sub
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
F9
безпосередньо після наклеювання?