#excel #vba
#excel #vba
Вопрос:
В эти дни я пытаюсь выполнить следующую задачу:
У меня есть лист, который представляет собой что-то вроде предложения с сенсорным экраном. Я называю это листом «Новое предложение». Внутри этого листа есть диапазон ячеек от J7 до L27, внутри которых динамически отображаются результаты (продукты).
Я хочу скопировать (двойным щелчком) определенный диапазон, скажем, от J7 до L7, когда я дважды щелкаю по первой ячейке (J7). и т. Д., Если я дважды щелкну, например, J9, чтобы скопировать J9 в L9 и скопировать результаты диапазона строк на новый лист, назовем это «Новые слова» в ячейках от A2 до C2 и в следующей доступной строке, если она занята.
В идеале я хотел бы копировать только значения, а не границы, цвета и т.д.. (Извините за мой плохой английский :))
Любая помощь?
Комментарии:
1. Вы уже пытались это сделать? Вы можете управлять этим с помощью
Worksheet_BeforeDoubleClick
события.2. Я сделал много попыток, а не одну :)) Но не удается скопировать диапазон, кроме целой строки, и даже если я скопирую строку, она не добавляется в следующий доступный, а переписывается на целевом листе в первой строке
3. Привет. Поскольку вы предприняли несколько попыток, пожалуйста, отредактируйте свой вопрос в своем коде, чтобы мы могли помочь исправить ошибку, а не предлагать решение, которое вы уже пробовали.
Ответ №1:
Попробуйте с этим справиться. Это просто перенос значения, а не копирование, таким образом, вы не получаете сопутствующего форматирования, и это также быстрее.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 10 Then
Dim lrow As Long
lrow = Sheets("NewOrders").Range("A" amp; Rows.Count).End(xlUp).Row
Sheets("NewOrders").Range("A" amp; lrow 1, "C" amp; lrow 1).Value = Range(Cells(Target.Row, 10), Cells(Target.Row, 12)).Value
End If
End Sub
Сначала проверяется, что двойной щелчок произошел в столбце J (10).
Затем находит последнюю строку на вашем листе Newworders.
Затем берет данные из столбца J: L и помещает их в следующую строку в столбцах A: C в новых словарях.
Комментарии:
1. Он работает, но с небольшой ошибкой. Когда я копирую вставку первого столбца, который имеет тип «201.301 или 204.301», он вставляет его с помощью 201,301 и т. Д… Есть идеи , почему ?
2. Я не понимаю, что вы имеете в виду. Он копирует значение, которое находится в ячейке, непосредственно в другую. Форматирование не копируется.
3. В первом столбце приведены результаты в формате «XXX.XXX», и его копирование вставляет его в формате «XXX, XXX» вместо точки, копируя запятую
4. Вы случайно не немец? Потому что это то, что делают немецкие конфигурации. Просто исправьте форматирование, потому что, как я уже сказал, оно копирует значение точно так, как оно есть. Это все то же значение, но вы видите другое, потому что вы изменили форматирование. Что вы могли бы сделать, это скопировать форматирование из нужной ячейки в свой лист Newworders, чтобы он имел тот же числовой формат.
5. Нет 🙂 Я грек 🙂 . Я думаю, это потому, что его значение копирования, а не текст. Я изменю все значения в XXX-XXX. что решает проблему Спасибо за вашу помощь