2

Это противоположно вопросу формата числа в Excel: отображение значения% без умножения на 100.

У меня есть данные в формате, где, например, ячейка с необработанным содержанием 0,75 "означает" 75%. Я настраиваю процесс для передачи таких данных в другую программу (Adobe Illustrator), которая отключается, если числа содержат какой-либо символ (даже%).

Я хотел бы сделать это без каких-либо изменений в содержании или структуре листа, поэтому никаких новых столбцов и никаких изменений в базовых данных. Очевидно, что без этого ограничения было бы очень легко добавить столбец с формулой, такой как =A1*100 . Я хочу избежать этого, потому что эти листы являются сложными, они поддерживаются командой, отличной от человека, выполняющего этот процесс, и я не хочу, чтобы человек, выполняющий этот процесс, изменял фактическое содержание листа за пределы легко обратимого изменения представления. как новый формат чисел.

Существует ли какой-либо формат чисел или аналогичная модификация уровня представления, которая позволит мне взять данные, хранящиеся как 0.75, 0.5, 0.25 и скопировать и вставить их в другое приложение, например 75, 50, 25?


Волшебный числовой формат "Процент", который умножается на 100, представляется в пользовательских форматах как 0.00% , но простое удаление % также удаляет умножение.


Я нашел блог (Chandoo), в котором предлагается использовать такой формат, как #,#.# [Ctrl-J] % чтобы скрыть знак процента под новой строкой, но у меня это не работает, поскольку мне нужен чистый вывод для приложения мои пользователи будут копировать и вставлять вывод в.

2 ответа2

1

Вы можете использовать этот макрос, чтобы сделать работу. Но сначала вы должны добавить ссылку на библиотеку Microsoft Forms 2.0. Нажмите Alt+F11, чтобы открыть редактор Visual Basic, затем нажмите Инструменты >> Ссылки ... Прокрутите вниз, пока не увидите Microsoft Forms 2.0 Object Library установите флажок рядом с ней и нажмите OK. Если вы не видите его (они перечислены в алфавитном порядке), вам нужно будет добавить его через DLL. Нажмите Обзор ... и найдите и добавьте 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 в том же бите, а затем введите знак процента. Затем перейдите на выравнивание и нажмите обернуть текст. Нажмите ок

Это скрывает знак%, но это означает, что вы можете изменить имя столбца на единицы, которые вы используете.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .