Могу добавить, что Value от нескольких ячеек вернет двумерный массив, где первое измерение - строка, второе - столбец, также можно присваивать значения сразу нескольким ячейкам. Dim a Dim r, c As Integer a = Source.Range("A1:C8").Value For r = LBound(a, 1) To UBound(a, 1) For c = LBound(a, 2) To UBound(a, 2) a(r, c) = Val(Replace(a(r, c), ",", ".")) * 2 Next c, r Destination.Range("A1:C8").Value = aПо литературе,к сожалению, конкретно не скажу, если знаете английский - стандартная справка VBA для Excel + "записывальщик" макросов - лучшее, что знаю, а так нужно искать что-то вроде "Автоматизация Excel" з/ыФункция Val() в качестве разделителя целой и дробной части всегда использует (.)точку. Если используется другой (в русском языке обычно (,)запятая) то для дробных чисел можно использовать CDbl() с проверкой IsNumeric(), или Val(Replace(Value , "," , "." )) можно без проверки, а CLng() будет округлять до ближайшего четного.