如何删除'for Cstr(combox1.value)

时间:2016-08-17 04:25:03

标签: excel vba excel-vba

我用它来更改字符串类型中的combox值并粘贴到单元格上。

  cells(i,1)=Cstr(combox1.value)

在Excel列A上,我将数据类型设置为String。

例如,我输入017``123 098 065

但是,我发现单元格(i,1)的确切值是'017 '098 '056 123。 以0开头的代码在开头包含'

*对于那些以' *

开头的代码,无需在0上显示精确单元格的任何方法来改进我的代码

2 个答案:

答案 0 :(得分:1)

在设置数值之前,将单元格的数字格式转换为Text

cells(i,1).NumberFormat = "@"
cells(i,1)=combox1.value

答案 1 :(得分:1)

'可能是一个格式化字符,这是Lotus 1-2-3的宿醉,我们使用前导'表示左对齐和前导"到表示右对齐。 (我想我没记错。)

如果它只是格式化字符(如果是,它不会包含在LEN返回的字符数中),那么你可以安全地忽略它。

如果您出于审美原因想要删除它,则需要删除单元格的当前内容,将单元格格式化为常规格式,然后将单元格格式化为文本格式,然后将新值插入单元格。

注意:您不能将单元格格式化为文本,删除内容,然后插入新值。 '仍然会出现在那种情况下。将其更改为通用格式的步骤(如果它还没有采用该格式)非常重要! (也许将其设置为其他非文本格式也可以将其设置为General,但我知道General将起作用。)

幸运的是,.Clear将删除单元格的内容将格式设置回“常规”,因此我们可以通过编程方式同时执行两项操作。

因此,我认为以下代码应该符合您的要求:

    Cells(i, 1).Clear
    Cells(i, 1).NumberFormat = "@"
    Cells(i, 1).Value = combox1.Value

第一行就是摆脱目前存在的问题。如果您使用的是全新的工作簿,则无需使用。