(function()
{
Api.GetActiveSheet().GetRange("C4").SetValue("Hello world");
})();
Sub example()
Cells(4, 3) = "Hello world"
End Sub
(function()
{
Api.GetActiveSheet().GetRange("B3").SetFillColor(Api.CreateColorFromRGB(0, 0, 250));
})();
Sub example()
Range("B3").Interior.Color = RGB(0, 0, 250)
End Sub
(function()
{
Api.GetActiveSheet().GetRange("B4").SetFontColor(Api.CreateColorFromRGB(255, 0, 0));
})();
Sub example()
Range("B4").Font.Color = RGB(255, 0, 0)
End Sub
Sub example()
Range("B4").Font.Color = RGB(255, 0, 0)
End Sub
(function()
{
Api.GetActiveSheet().GetRange("A2").SetBold(true);
})();
Sub example()
Range("A2").Font.Bold = True
End Sub
(function()
{
Api.GetActiveSheet().GetRange("A1:B3").Merge(true);
})();
Sub example()
Range("A1:B3").Merge
End Sub
(function()
{
Api.GetActiveSheet().GetRange("C5:D10").UnMerge();
})();
Sub example()
Range("C5:D10").UnMerge
End Sub
(function()
{
Api.GetActiveSheet().SetColumnWidth(1, 25);
})();
Sub example()
Columns("B").ColumnWidth = 25
End Sub
(function()
{
Api.GetActiveSheet().FormatAsTable("A1:D10");
})();
Sub example()
Sheet1.ListObjects.Add(xlSrcRange, Range("A1:D10"), , xlYes).Name = "myTable1"
End Sub
((function()
{
Api.GetActiveSheet().AddChart("'Sheet1'!$C$5:$D$7", true, "bar", 2, 105 * 36000, 105 * 36000, 0, 0, 9, 0);
})();
Sub example()
With ActiveSheet.ChartObjects.Add(Left:=300, Width:=300, Top:=10, Height:=300)
.Chart.SetSourceData Source:=Sheets("Sheet1").Range("C5:D7")
End With
End Sub
(function ()
{
// Цвет фона ячеек с неповторяющимися значениями
var whiteFill = Api.CreateColorFromRGB(255, 255, 255);
// Текущий индекс диапазона цветов
var uniqueColorIndex = 0;
// Диапазон цветов для выделения повторяющихся значений
var uniqueColors = [Api.CreateColorFromRGB(255, 255, 0),
Api.CreateColorFromRGB(204, 204, 255),
Api.CreateColorFromRGB(0, 255, 0),
Api.CreateColorFromRGB(0, 128, 128),
Api.CreateColorFromRGB(192, 192, 192),
Api.CreateColorFromRGB(255, 204, 0)];
// Функция для получения цвета для дубликатов
function getColor() {
// Если все уникальные цвета выбраны, начинаем сначала
if (uniqueColorIndex === uniqueColors.length) {
uniqueColorIndex = 0;
}
return uniqueColors[uniqueColorIndex++];
}
// Получаем активный лист
var activeSheet = Api.GetActiveSheet();
// Получаем выделение на активном листе
var selection = activeSheet.GetSelection();
// Карта значений в ячейках с количеством дубликатов
var mapValues = {};
// Диапазон всех ячеек
var arrRanges = [];
// Проходим по выделению
selection.ForEach(function (range) {
// Получаем значение из ячейки
var value = range.GetValue();
if (!mapValues.hasOwnProperty(value)) {
mapValues[value] = 0;
}
mapValues[value] += 1;
arrRanges.push(range);
});
var value;
var mapColors = {};
// Проходим по всем ячейкам выделения и устанавливаем выделение, если это значение повторяется более 1 раза
for (var i = 0; i < arrRanges.length; ++i) {
value = arrRanges[i].GetValue();
if (mapValues[value] > 1) {
if (!mapColors.hasOwnProperty(value)) {
mapColors[value] = getColor();
}
arrRanges[i].SetFillColor(mapColors[value]);
} else {
arrRanges[i].SetFillColor(whiteFill);
}
}
})();
Sub example()
Dim xRg As Range
Dim xTxt As String
Dim xCell As Range
Dim xChar As String
Dim xCellPre As Range
Dim xCIndex As Long
Dim xCol As Collection
Dim I As Long
On Error Resume Next
If ActiveWindow.RangeSelection.Count > 1 Then
xTxt = ActiveWindow.RangeSelection.AddressLocal
Else
xTxt = ActiveSheet.UsedRange.AddressLocal
End If
Set xRg = Application.InputBox("please select the data range:", "Kutools for Excel", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub
xCIndex = 2
Set xCol = New Collection
For Each xCell In xRg
On Error Resume Next
xCol.Add xCell, xCell.Text
If Err.Number = 457 Then
xCIndex = xCIndex + 1
Set xCellPre = xCol(xCell.Text)
If xCellPre.Interior.ColorIndex = xlNone Then xCellPre.Interior.ColorIndex = xCIndex
xCell.Interior.ColorIndex = xCellPre.Interior.ColorIndex
ElseIf Err.Number = 9 Then
MsgBox "Too many duplicate companies!", vbCritical, "Kutools for Excel"
Exit Sub
End If
On Error GoTo 0
Next
End Sub
(function ()
{
// Получаем активный лист
var activeSheet = Api.GetActiveSheet();
// Минимальный индекс строки
var indexRowMin = 0;
// Максимальный индекс строки
var indexRowMax = 1048576;
// Столбец 'A'
var indexCol = 0;
// Индекс строки для поиска пустой ячейки
var indexRow = indexRowMax;
for (; indexRow >= indexRowMin; --indexRow) {
// Получаем ячейку
var range = activeSheet.GetRangeByNumber(indexRow, indexCol);
// Проверяем значение
if (range.GetValue() && indexRow !== indexRowMax) {
range = activeSheet.GetRangeByNumber(indexRow + 1, indexCol);
range.Select();
break;
}
}
})();
Sub example()
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
End Sub
(function()
{
var oDocument = Api.GetDocument();
var oParagraph = Api.CreateParagraph();
oParagraph.AddText("Hello world!");
oDocument.InsertContent([oParagraph]);
})();
Sub example()
Selection.TypeText Text:="Hello world!"
End Sub
(function()
{
var sCurPair = "USD_EUR";
function formatDate(d) {
var month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2)
month = '0' + month;
if (day.length < 2)
day = '0' + day;
return [year, month, day].join('-');
}
function previousWeek(){
var today = new Date();
var prevweek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);
return prevweek;
}
var sDate = formatDate(previousWeek());
var sEndDate = formatDate(new Date());
var apiKey = 'ваш_ключ_от_API';
var sUrl = 'https://free.currconv.com/api/v7/convert?q='
+ sCurPair + '&compact=ultra' + '&date=' + sDate + "&endDate=" + sEndDate + '&apiKey=' + apiKey;
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", sUrl, false);
xmlHttp.send();
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var oData = JSON.parse(xmlHttp.responseText);
for(var key in oData) {
var sheet = Api.GetSheet("Sheet1");
var oRange = sheet.GetRangeByNumber(0, 1);
oRange.SetValue(key);
var oDates = oData[key];
var nRow = 1;
for(var date in oDates) {
oRange = sheet.GetRangeByNumber(nRow, 0);
oRange.SetValue(date);
oRange = sheet.GetRangeByNumber(nRow, 1);
oRange.SetValue(oDates[date]);
nRow++;
}
}
}
})();
Sub example()
' ' Этот пример не имеет прямого аналога в VBA и требует стороннего API
End Sub
//ВНИМАНИЕ!: Не забудьте заменить `'ваш_адрес_файла'`
//на фактический URL вашего CSV или TXT файла.
(function()
{
function LoadFile() {
$.ajax({
url: 'ваш_адрес_файла',
dataType: 'text',
}).done(successFunction);
}
function successFunction(data) {
var arrAllRows = data.split(/\r?\n|\r/);
var oWorksheet = Api.GetActiveSheet();
// Точка отсчета
var i = 1;
var j = 1;
for (var singleRow = 0; singleRow < arrAllRows.length; singleRow++) {
var rowCells = arrAllRows[singleRow].split(',');
for (var rowCell = 0; rowCell < rowCells.length; rowCell++) {
oWorksheet.GetCells(i, j).SetValue(rowCells[rowCell]);
j = j + 1;
}
i = i + 1;
j = 1;
}
}
LoadFile();
let reload = setInterval(function(){
Api.asc_calculate(Asc.c_oAscCalculateType.All);
}, 60000);
})();
Sub example()
'' Этот пример не имеет прямого аналога на VBA,
'' так как использует AJAX для загрузки данных из файла
End Sub
(function ()
{
let timerId = setInterval(function(){
Api.asc_calculate(Asc.c_oAscCalculateType.All);
var oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("F2").SetValue("Average");
oWorksheet.GetRange("G2").SetValue("=AVERAGE(B2:B80)");
}, 1000);
})();
Sub example()
Application.OnTime Now + TimeValue("00:00:01"), "RecalculateValues"
End Sub
Sub RecalculateValues()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Calculate
ws.Range("F2").Value = "Average"
ws.Range("G2").Formula = "=AVERAGE(B2:B80)"
' 'Reschedule the recalculation
Application.OnTime Now + TimeValue("00:00:01"), "RecalculateValues"
End Sub
(function()
{
var activeSheet = Api.GetActiveSheet();
var indexRowMax = 1048576;
var indexColMax = 16384; // Максимальное количество столбцов в Excel
// Отобразить все строки
for (let i = 0; i < indexRowMax; i++) {
activeSheet.GetRows(i + 1).SetHidden(false);
}
// Отобразить все столбцы
for (let j = 0; j < indexColMax; j++) {
activeSheet.GetColumns(j + 1).SetHidden(false);
}
var newRange = activeSheet.GetRange("A1");
newRange.SetValue("All the rows and columns are unhidden now");
})();
Sub UnhideAllRowsAndColumns()
Cells.EntireRow.Hidden = False
Cells.EntireColumn.Hidden = False
Range("A1").Value = "All the rows and columns are unhidden now"
End Sub
(function()
{
var oPresentation = Api.GetPresentation();
var slideCount = oPresentation.GetSlideCount(); // Получаем количество слайдов в презентации
for (let i = 0; i < slideCount; i++) {
var oSlide = oPresentation.GetSlideByIndex(i);
var aShapes = oSlide.GetAllShapes();
for (let j = 0; j < aShapes.length; j++) {
aShapes[j].Delete();
}
}
})();
Sub RemoveShapes()
Dim slide As slide
Dim shape As shape
For Each slide In ActivePresentation.Slides
For Each shape In slide.Shapes
shape.Delete
Next shape
Next slide
End Sub
(function()
{
function generate() {
let key = '';
const data = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
'abcdefghijklmnopqrstuvwxyz0123456789';
for (let i = 1; i <= 12; i++) {
let index = Math.floor(Math.random() * data.length);
key += data.charAt(index);
}
return key;
}
const id = generate();
const oDocument = Api.GetDocument();
const oParagraph = Api.CreateParagraph();
oParagraph.AddText(id);
oDocument.InsertContent([oParagraph], { "KeepTextOnly": true });
})();
Sub InsertUniqueId()
Dim uniqueId As String
uniqueId = GenerateUniqueId()
Sub InsertUniqueId()
Dim uniqueId As String
uniqueId = GenerateUniqueId()
Dim para As Paragraph
Set para = ActiveDocument.Paragraphs.Add
para.Range.Text = uniqueId
End Sub
Function GenerateUniqueId() As String
Dim i As Integer
Dim key As String
Dim data As String
data = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
For i = 1 To 12
key = key & Mid(data, Int((Len(data) * Rnd) + 1), 1)
Next i
GenerateUniqueId = key
End Function
// Структура макроса
// 1. Считывание адреса (ячейка A2)
// 2. Отправка запроса
// 3. Получение ответа и создание объекта с подробной адресной информацией
// 4. Вставка подробной информации об адресе
// 5. Считывание адреса в следующей строке (ячейка A3) и отправка запроса
(function()
{
const API_KEY = 'yourAPIkey';
const ENDPOINT = 'https://api.geoapify.com/v1/geocode/search';
const oWorksheet = Api.GetActiveSheet();
let row = 2;
makeRequest(oWorksheet.GetRange(`A${row}`).GetText());
// Отправка запроса
function makeRequest(ADDRESS) {
if (ADDRESS === '') return;
$.ajax({
url: `${ENDPOINT}?text=${addressToRequest(ADDRESS)}&apiKey=${API_KEY}`,
dataType: 'json',
}).done(successFunction);
}
// Преобразование адреса для запроса (London, United Kingdom -> London%2C%20United%20Kingdom)
function addressToRequest(address) {
return address.replaceAll(' ', '%20').replaceAll(',', '%2C');
}
// Обработка ответа
function successFunction(response) {
const data = createAddressDetailsObject(response);
pasteAddressDetails(data);
reload();
}
// Создание объекта с подробной информацией об адресе, если адрес найден
function createAddressDetailsObject(response) {
if (response.features.length === 0) {
return { error: 'Address not found' };
}
console.log(response);
let data = {
country: response.features[0].properties.country,
county: response.features[0].properties.county,
city: response.features[0].properties.city,
post_code: response.features[0].properties.postcode,
full_address_line: response.features[0].properties.formatted
};
data = checkMissingData(data);
return data;
}
// Замена отсутствующих полей на '-'
function checkMissingData(data) {
Object.keys(data).forEach(key => {
if (data[key] === undefined) data[key] = '-';
});
return data;
}
// Вставка подробной информации об адресе
function pasteAddressDetails(data) {
const oRange = oWorksheet.GetRange(`B${row}:F${row}`);
if (data.error !== undefined) {
oRange.SetValue([[data.error]]);
} else {
oRange.SetValue([
[
data.country,
data.county,
data.city,
data.post_code,
data.full_address_line
]
]);
}
// Выполнение рекурсивно до тех пор, пока значение "Address" не станет пустым
row++;
makeRequest(oWorksheet.GetRange(`A${row}`).GetText());
}
// Обновление листа при изменениях
function reload() {
let reload = setInterval(function(){
Api.asc_calculate(Asc.c_oAscCalculateType.All);
});
}
})();
Sub example()
'' Этот пример не имеет прямого аналога на VBA
End Sub
function aroundWhiteBorder(el) {
el.SetBorders("Bottom", "Medium", Api.CreateColorFromRGB(255, 255, 255));
el.SetBorders("Top", "Medium", Api.CreateColorFromRGB(255, 255, 255));
el.SetBorders("Left", "Medium", Api.CreateColorFromRGB(255, 255, 255));
el.SetBorders("Right", "Medium", Api.CreateColorFromRGB(255, 255, 255));
}
//Перемещение в конец выбранного столбца
(function ()
{
let activeSheet = Api.ActiveSheet; // Получение текущего листа
let indexRowMin = 0; // Минимальный индекс строки
let indexRowMax = 1048576; // Максимальный индекс строки
let indexCol = 0; // Индекс нужного столбца
let indexRow = indexRowMax;
for (; indexRow >= indexRowMin; --indexRow) {
let range = activeSheet.GetRangeByNumber(indexRow, indexCol);
if (range.GetValue() && indexRow !== indexRowMax) {
range = activeSheet.GetRangeByNumber(indexRow + 1, indexCol);
range.Select();
break;
}
}
})();
//Создание диаграмм в текстовом редакторе
(function()
{
let oDocument = Api.GetDocument();
let oParagraph = oDocument.GetElement(0);
let sType = "bar3D" //Тип диаграммы / "bar" | "barStacked" | "barStackedPercent" | "bar3D" | "barStacked3D" | "barStackedPercent3D" | "barStackedPercent3DPerspective" | "horizontalBar" | "horizontalBarStacked" | "horizontalBarStackedPercent" | "horizontalBar3D" | "horizontalBarStacked3D" | "horizontalBarStackedPercent3D" | "lineNormal" | "lineStacked" | "lineStackedPercent" | "line3D" | "pie" | "pie3D" | "doughnut" | "scatter" | "stock" | "area" | "areaStacked" | "areaStackedPercent"
let aSeries = [[200, 240, 280],[250, 260, 280]] //Массив данных
let aSeriesNames = ["Projected Revenue", "Estimated Costs"]//Массив имён данных
let aCatNames = [2014, 2015, 2016] //Массив имён категорий
let width = 4051300 // Ширина
let height = 2347595 // Длина
let styleIndex = 24 // Индекс стиля диаграммы по спецификации OOXML(1 - 48)
let aNumFormats = ["0", "0.00"]
let oDrawing = Api.CreateChart(sType, aSeries, aSeriesNames, aCatNames, width, height, styleIndex, aNumFormats);
oDrawing.SetShowPointDataLabel(1, 1, false, false, true, false); // Создание объекта для отрисовки / Индекс значения из массива, над которым будет значение - int/ Индекс столбца, над которым будет значение - int/ Демонстрация имён таблицы - bool/ Демонстрация строк таблицы - bool/ Демонстрация значения данных диаграммы - bool/ Демонстрация процента значений данных - bool
oParagraph.AddDrawing(oDrawing);
})();
(function ()
{
let whiteFill = Api.CreateColorFromRGB(255, 255, 255);
let uniqueColorIndex = 0; // Текущий индекс в цветовом диапазоне
let uniqueColors = [Api.CreateColorFromRGB(255, 255, 0),
Api.CreateColorFromRGB(204, 204, 255),
Api.CreateColorFromRGB(0, 255, 0),
Api.CreateColorFromRGB(0, 128, 128),
Api.CreateColorFromRGB(192, 192, 192),
Api.CreateColorFromRGB(255, 204, 0)]; // Массив с цветами
function getColor() { // Функция, получающая цвета дубликатов
if (uniqueColorIndex === uniqueColors.length) {
uniqueColorIndex = 0;a
}
return uniqueColors[uniqueColorIndex++];
}
let activeSheet = Api.ActiveSheet; // Получаем текущий лист
let selection = activeSheet.Selection; // Получаем выделенную область
let mapValues = {}; // Создаем пустой ассоциативный массив. В нем будет хранится информация о дубликатах.
let arrRanges = []; //Массив всех клеток
selection.ForEach(function (range) {
let value = range.GetValue(); // Получаем значение из клеток
if (!mapValues.hasOwnProperty(value)) {
mapValues[value] = 0;
}
mapValues[value] += 1;
arrRanges.push(range);
});
let value;
let mapColors = {};
//Окрашиваем дубликаты
for (let i = 0; i < arrRanges.length; ++i) {
value = arrRanges[i].GetValue();
if (mapValues[value] > 1) {
if (!mapColors.hasOwnProperty(value)) {
mapColors[value] = getColor();
}
arrRanges[i].SetFillColor(mapColors[value]);
} else {
arrRanges[i].SetFillColor(whiteFill);
}
}
})();
(function()
{
let oWorksheet = Api.GetActiveSheet();// Получаем текущий лист
let test = oWorksheet.Selection; // Объявляем переменную = ее к отбору по ячейке
test.ForEach(x => { // Создаем Цикл
let value = x.GetValue(); // Объявляем переменную = ее к замене
if(value === null || value === "" || !Number(value)){
return;
}
else{
value = Number(value); // переменная приравнивается к числовому значению
x.SetValue(value); // выводим переменную
x.SetNumberFormat("0.00"); // изменяем формат ячейки на числовой и форматируем под определенный вид числа
}
});
})();
let oWorksheet = Api.GetActiveSheet(); //Получение текущего листа
let oRange = oWorksheet.GetRange("A1:C3"); //Получение диапазона ячеек
oRange.GetCells(2, 1).SetFillColor(Api.CreateColorFromRGB(255, 224, 204)); //Получение ячеек из диапазона
let oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("A1").SetValue("text1");
oWorksheet.GetRange("B1").SetValue("text2");
oWorksheet.GetRange("C1").SetValue("text3");
let oRange = oWorksheet.GetRange("A1:C1");
let sText = oRange.GetText();
oWorksheet.GetRange("A3").SetValue("Text from the cell A1: " + sText);
(function()
{
let oWorksheet = Api.GetActiveSheet();// Получаем текущий лист
let test = oWorksheet.Selection; // Объявляем переменную = ее к отбору по ячейке
test.ForEach(x => {
let value = x.GetValue();
oWorksheet.GetRange("M1").SetValue(value);
})
})();
(function()
{
let oDocument = Api.GetDocument(); //Подключаемся к документу
let oParagraph = Api.CreateParagraph(); //Создаем параграф
for(let i = 0; i< 100; i++){ //Цикл
oParagraph.AddText(`${i}`); //Добавляем с помощью AddText форматированною строку в параграф
oDocument.Push(oParagraph); //Добавляем параграф на страницу
}
})();
(function()
{
Api.GetActiveSheet().GetRange("B3").SetFillColor(Api.CreateColorFromRGB(0, 0, 250));
})();
(function()
{
Api.GetActiveSheet().GetRange("A2").SetBold(true);
})();
(function()
{
Api.GetActiveSheet().GetRange("B4").SetFontColor(Api.CreateColorFromRGB(255, 0, 0));
})();
(function()
{
Api.GetActiveSheet().GetRange("A1:B3").Merge(true);
})();
(function()
{
Api.GetActiveSheet().FormatAsTable("A5:AU5");
})();
(function()
{
Api.GetActiveSheet().GetRange("C3:D10").UnMerge();
})();
let selection = Api.GetActiveSheet().Selection; // Помещаем выбранный фрагмент в переменную
let rowsArr = []; // Создаём массив строк
let startRow = selection.GetRow(); // Получаем стартовую строку
// Получаем номер строки каждого выделенного элемента
selection.ForEach((x) => {
endRow = x.GetRow();
});
//Получаем массив с номерами всех выбранных строк
for (startRow; startRow < endRow + 2; startRow++) {
rowsArr.push(startRow);
}
(function()
{
Api.GetActiveSheet().SetColumnWidth(1, 25); //Индекс столбца, ширина
})();
let area = secondWorksheet.GetRange("A21:F150"); // Сброс предыдущих значений
function aroundWhiteBorder(el) {
el.SetBorders("Bottom", "Medium", Api.CreateColorFromRGB(255, 255, 255));
el.SetBorders("Top", "Medium", Api.CreateColorFromRGB(255, 255, 255));
el.SetBorders("Left", "Medium", Api.CreateColorFromRGB(255, 255, 255));
el.SetBorders("Right", "Medium", Api.CreateColorFromRGB(255, 255, 255));
}
area.ForEach((x) => {
x.SetValue("");
aroundWhiteBorder(x);
});
(function()
{
let oDoc = Api.GetDocument(); // Получаем документ
let elcount = oDoc.GetElementsCount(); // Получаем количество элементов в документе
for(let i = 0; i < elcount; i++){ // Перебираем циклом все элементы
let e = oDoc.GetElement(i);
let oTextPr = el.GetTextPr();
oTextPr.SetFontFamily("Comic Sans MS"); // Прописываем название нужного шрифта
e.SetTextPr(oTextPr);// Устанавливаем нужный шрифт
}
})();