Author |
Topic |
|
arturik
Russia
29 Posts |
Posted - 02/03/2006 : 07:37:26
|
Добрый день(утро, вечер, ночь). У меня есть небольшая проблемка когда я беру данные с помощью Visual Basica из ячейки то техт, находящийся в ячейке берется прямо с кавычками. Поэтому для работы сним мне приходиться сначала узнавать его длину, потом обрезать крайние кавычки и только после этого работать с ним что не очень удобно. Может кто знает как поступить проще.
Мне постоянно приходиться использовать примерно такой код s = объект.cellsU("user.1").formula l = len(s) s = mid(s,2,l-2)
Подскажите может есть метод попроще.
Заранее благодарен. |
|
Tumanov
Russia
1198 Posts |
Posted - 02/03/2006 : 18:52:39
|
Уже обсуждалось... Попроще только Replace(s,Chr(34),""), но это не всегда корректно. А Microsoft в Visio SDK предлагает пользоваться вот такой функцией:
' modFormulaToString / FormulaToString.bas ' Copyright (c) Microsoft Corporation. All rights reserved.
' This file contains code that converts a Visio formula to a string.
Public Function FormulaStringToString(ByVal strFormula As String) As String ' ' FormulaStringToString ' ' Abstract - The FormulaStringToString function is used to format a ' Visio formula value as a standard string. ' ' Remarks: The strFormula[U] methods return the strFormula as entered in ' the shapesheet. Therefore, string formulas are wrapped ' in quote marks and an extra quote char is used when it is ' desired to place a quote character within a strFormula string. ' ' Parameters ' strFormula The value returned from a call ' to the strFormula[U] property of a cell object. ' ' Return Value Converted string (If an error occurs with the ' conversion, an empty string is returned.) ' Const ONE_QUOTE As String = """" Const TWO_QUOTES As String = """"""
Dim strConvertedFormula As String Dim strFirstCharacter As String Dim strLastCharacter As String Dim intStringLength As Integer On Error GoTo FormulaStringToString_Err 'Initialize the converted strFormula from the value passed in. strConvertedFormula = strFormula intStringLength = Len(strFormula) strFirstCharacter = Mid(strFormula, 1, 1) strLastCharacter = Mid(strFormula, intStringLength, 1) ' Check if this strFormula[U] value is a quoted string. ' If it is, remove extra quote characters. If (strFirstCharacter = ONE_QUOTE And _ strLastCharacter = ONE_QUOTE) Then ' Remove the wrapping quote characters as well as any ' extra quote marks in the body of the string. strConvertedFormula = Mid(strFormula, 2, (intStringLength - 2)) strConvertedFormula = Replace(strConvertedFormula, _ TWO_QUOTES, ONE_QUOTE) End If
FormulaStringToString_End:
FormulaStringToString = strConvertedFormula Exit Function
FormulaStringToString_Err:
'Return a empty string if error occurs. strConvertedFormula = ""
'Display the error. Debug.Print Err.Description
Resume FormulaStringToString_End End Function |
|
|
arturik
Russia
29 Posts |
Posted - 02/16/2006 : 11:42:33
|
Спасибо за ответ Господин Туманов. Данная функция мне очень пригодилась. Хотя они могли бы сделать это все на автомате сами. |
|
|
|
Topic |
|
|
|