2015-02-06 92 views
0

我在Sheet1中有两列从A1到B10。在这些列中的每个单元都具有字符串“一”或“b”或“c”Excel VBA转换单元格范围的值

 A B 
1 a a 
2 a b 
3 b c 
4 b b 
5 a a 
6 c b 
7 a a 
8 a c 
9 b a 
10 a b 

欲具有值“a”到整数“12”的每一个细胞转化中,“b”,以使用VBA将整数“14”和“c”变换为整数“16”。并在相应的单元格中显示Sheet2中的结果。

 A B 
1 12 12 
2 12 14 
3 14 16 
4 14 14 
5 12 12 
6 16 14 
7 12 12 
8 12 16 
9 14 12 
10 12 14 

我有这非常不完整代码:

Sub getConvert() 

For Each original In Range("A1 , B10") 
Select Case original 
    Case "a" 
    CorrectedText = Replace(original, "a", "12") 
    Case "b" 
    CorrectedText = Replace(original, "b", "14") 
    Case Else 
    CorrectedText = Replace(original, "c", "16") 
End Select 
Next 
End Sub 
+0

您能得到什么?或什么不工作?我怀疑你应该使用'Select Case original.value'或'original.textValue'(因为'original'是一个范围对象,而不是文本。 – Tensibai 2015-02-06 11:17:52

+0

,我不知道如何将结果粘贴到另一张表格的相应单元格中? – javad 2015-02-06 11:37:30

+0

用'sheets(2)'预先加上原稿就足够了,但是你可能需要使用'sheets(2)。Original.range.value ='(未经测试并且从内存中不确定) – Tensibai 2015-02-06 11:42:20

回答

0

你需要访问的每个细胞,然后读出它的值覆盖在你的循环:

Dim original As Range, destination As Worksheet 

Set destination = Sheets("Sheet2") 

For Each original In Range("A1:B10") 
    Select Case original.Value 
     Case "a": destination.Range(original.Address).Value = "12" 
     Case "b": destination.Range(original.Address).Value = "14" 
     Case "c": destination.Range(original.Address).Value = "16" 
    End Select 
Next 
+0

并且我不知道如何粘贴结果进入另一张表中的相应单元格? – javad 2015-02-06 11:31:55

+0

对不起,我错过了,更新了 – 2015-02-06 11:41:27

+0

非常感谢。 – javad 2015-02-06 12:05:24

相关问题