ThisWorkbook.Worksheets("Master").Sheet1.Cells.Copy _ Destination:=newWorksheet.Cells
Выше будут скопированы ячейки. Если вы действительно хотите продублировать весь лист, я бы пошел с ответом @ brettdj .
Короткий ответ: вы не можете.
Более длинный и злой ответ заключается в том, что вы вроде как можете с какой-то настоящей мерзостью. И он работает только при вызове из другой функции.
вам доступны два интересных атрибута, которые могут помочь
arguments.callee вызывающий
для fn должен сделать что-то вроде этого:
(function(){
var showMe = function(s){
alert(arguments.callee.caller.toString().match(/showMe\((\S)\)/)[1] +
' = '+ s)
}
x = 1
showMe(x)
})()
То, что arguments.callee.caller.toString (). match (..) [1], - это поиск showMe, вызываемого в вызывающей его функции, и вывод его и его значение.
Но это все еще довольно ограничено, потому что оно попадет только в первый вызов showMe (x). Так что, если есть два вызова, это не сработает.
Но было весело играть с этими загадочными штуками.
var x = "anything";
function showName(s) {
alert(s + " = " + eval(s));
}
showName("x");
Не рекомендуется, но вот оно.
Вы можете создать хэш и передать его в:
var x = {a: 1,b:2}
function showVars(y) {
for (var z in y) { alert(z + " is " + y[z]); }
}
showVars(x);
Это не обязательно показывает имя переменной, но позволяет использовать пары ключ-значение, которые могут быть больше суть в том, что вам нужно.
Не уверен, что вы можете напрямую получить то, что хотите, от JavaScript, поскольку имя переменной не передается вместе со значением, на которое оно ссылается (думайте об именах переменных как об идентификаторах только компилятор знает о; но которые выбрасываются во время выполнения).
Вы можете , однако, сделать что-то другое , что позволяет передавать именованные аргументы. Создайте анонимный объект и передайте его своей функции:
function showNames(o)
{
for( var ix in o )
{
alert( ix + ":" + o[ix] );
}
}
var z = { x : "Anything" }
showNames( z );
// or
showNames( { a : "ay", b : "bee", c: "see" } )
Для итерации свойств объекта я предпочитаю функциональный стиль, например:
Array.iteri = function(o, f)
{
for(var i in o) { f(i, o[i]) }
}
function showNames(o)
{
Array.iteri( o, function(i,v)
{
alert( i + ": " + v )
});
}
showNames( { a : "ay", b : "bee", c: "see" } )
Несколько методов, включая упомянутые вами:
Идея состоит в том, чтобы выбросить как можно больше деталей это возможно до того, как пользователи начнут это замечать.
Существует ряд уже существующих наборов инструментов, которые будут делать эти вещи автоматически, но они, как правило, стоят денег. Если вы ищете серьезное приложение, я бы порекомендовал хотя бы изучить решения, которые оно включает.
Идея состоит в том, чтобы выбросить как можно больше деталей это возможно до того, как пользователи начнут это замечать.
Существует ряд уже существующих наборов инструментов, которые будут делать эти вещи автоматически, но они, как правило, стоят денег. Если вы ищете серьезное приложение, я бы порекомендовал хотя бы изучить решения, которые оно включает.
Идея состоит в том, чтобы выбросить как можно больше деталей это возможно до того, как пользователи начнут это замечать.
Существует ряд уже существующих наборов инструментов, которые будут делать эти вещи автоматически, но они, как правило, стоят денег. Если вы ищете серьезное приложение, я бы порекомендовал хотя бы изучить решения, которые оно включает.
выгода очевидна (вы можете игнорировать объекты на всех других аренах)Идея состоит в том, чтобы выбросить как можно больше деталей это возможно до того, как пользователи начнут это замечать.
Существует ряд уже существующих наборов инструментов, которые будут делать эти вещи автоматически, но они, как правило, стоят денег. Если вы ищете серьезное приложение, я бы порекомендовал хотя бы изучить решения, которые оно включает.
выгода очевидна (вы можете игнорировать объекты на всех других аренах)Идея состоит в том, чтобы выбросить как можно больше деталей это возможно до того, как пользователи начнут это замечать.
Существует ряд уже существующих наборов инструментов, которые будут делать эти вещи автоматически, но они, как правило, стоят денег. Если вы ищете серьезное приложение, я бы порекомендовал хотя бы изучить решения, которые оно включает.
или использовать его для скайбокса / карты отражений и т. д.Идея состоит в том, чтобы отбросить как можно больше деталей, прежде чем пользователи начнут это замечать.
Существует ряд уже существующих наборов инструментов, которые будут делать эти вещи автоматически, но они, как правило, стоят денег. Если вы ищете серьезное приложение, я бы порекомендовал хотя бы изучить решения, которые оно включает.
или использовать его для скайбокса / карты отражений и т. д.Идея состоит в том, чтобы отбросить как можно больше деталей, прежде чем пользователи начнут это замечать.
Существует ряд уже существующих наборов инструментов, которые будут делать эти вещи автоматически, но они, как правило, стоят денег. Если вы ищете серьезное приложение, я бы порекомендовал хотя бы изучить решения, которые оно включает.
потому что, если враждебно настроенный пользователь может перезаписать значение foo
в памяти в любой момент, он может выполнить инъекцию команд ОС и запустить любую команду, которую захотят.