Это противоположно вопросуФормат числа в Excel: отображение % значения без умножения на 100.
У меня есть данные в формате, где, например, ячейка, исходное содержимое которой равно 0,75, «означает» 75%. Я настраиваю процесс передачи таких данных в другую программу (Adobe Illustrator), которая дает сбой, если числа содержат любой символ (даже %).
Я бы хотел это сделатьбез каких-либо изменений всодержаниеили структура листа, то есть никаких новых столбцов и никаких изменений в базовых данных. Очевидно, что без этого ограничения добавление столбца с формулой типа =A1*100
было бы очень простым. Я хочу избежать этого, потому что эти листы сложны, они поддерживаются другой командой, а не тем человеком, который выполняет этот процесс, и я не хочу, чтобы человек, который выполняет этот процесс, менял фактическое содержимое листа за пределами легко обратимого изменения представления, например, нового числового формата.
Существует ли какой-либо числовой формат или подобная модификация уровня представления, которая позволит мне взять данные, хранящиеся в формате , 0.75, 0.5, 0.25
и скопировать и вставить их в другое приложение, например 75, 50, 25
?
Волшебный числовой формат «Процент», который умножается на 100, по-видимому, указан в пользовательских форматах как 0.00%
, но простое удаление %
также удаляет умножение.
я нашелблог (Chandoo), который предлагаетиспользую формат типа #,#.#
[ctrl-J], %
чтобы скрыть знак процента под новой строкой, но это не работает для меня, так как мне нужен чистый вывод для приложения, в которое мои пользователи будут копировать и вставлять вывод.
решение1
Вы можете использовать этот макрос для выполнения работы. Но сначала вы должны добавить ссылку на библиотеку Microsoft Forms 2.0. Нажмите Alt+F11, чтобы открыть редактор Visual Basic, затем нажмите Tools >> References... Прокрутите вниз, пока не увидите Microsoft Forms 2.0 Object Library
и не установите флажок рядом с ним, затем нажмите OK. Если вы его не видите (они перечислены в алфавитном порядке), вам нужно будет добавить его через dll. Нажмите Browse... и найдите и добавьте C:\Windows\System32\FM20.DLL
.
Использование: выберите диапазон (можно выбрать весь столбец) и вызовите макрос любым удобным для пользователя способом. После запуска макроса данные будут в буфере обмена. Вы можете создать кнопку, назначить горячую клавишу или вручную запустить его через ленту. Я предполагаю, что все значения вычисляются с помощью формул и что нет никаких пустых ячеек. Он вообще не изменяет рабочую книгу, поэтому если ваш пользователь ошибется и выберет неправильный столбец, это никак не повлияет на ваши данные.
Option Explicit
Public Sub CopyPercentAsWholeNumber()
Dim Arr() As Variant
ReDim Arr(1 To Selection.SpecialCells(xlCellTypeFormulas).Count)
Dim i As Long
With Selection
For i = 1 To UBound(Arr)
Arr(i) = .Cells(i).Value * 100
Next i
End With
Dim S As String
Dim objText As New MSForms.DataObject
S = Join(Arr, vbCrLf) & vbNewLine
objText.SetText S
objText.PutInClipboard
End Sub
решение2
Быстрая починка
Выделите ваши числа. Перейдите в пользовательские форматы, введите 0.00, затем ctrl+j в том же бите, а затем введите знак процента. Затем перейдите в выравнивание и нажмите «перенести текст». Нажмите ok
Это скроет знак %, но позволит вам изменить имя столбца на используемые вами единицы измерения.