Таким образом, вы обеспечиваете лист Excel с макро-функциональность бесплатно для. Хорошая попытка братан, так держать.
В точку.
Сначала я сделал это только для меня, чтобы следить за моей торговли, но когда-нибудь я просто подумал, почему бы не поделиться им и здесь.
Но я не слышал, любой файл хостинг от имени XUP, так боятся открыть свои ссылки. Я хотел бы иметь любой снимок экрана для Excel листа с данными и как эффективно использовать его, если это возможно.
Ну я просто напечатал "один щелчок Filehoster" в гугле это один, казалось, самый простой загрузки некоторых файлов.
Это скриншот версии я в настоящее время с помощью (немного старше версии я закачанный):
https://i.imgsafe.org/f0099efe6b.pngНо если вы все еще не доверяет мне, что вы можете просто повозиться вместе самостоятельно.
Все, что вам нужно сделать, это:
Создайте новый Excel-файл с 3 листов (первый один = основного листа, где вы положили код в, второй один, где вы вставить tradehistory-данные, а третий один, где вы вставить deposithistory-данные)
Добавьте кнопку на лист один с именем CommandButton1 (не заголовок, подпись может быть все, что вы хотите)
Вставьте код из ниже в основной-лист по правой кнопке мыши на главном листок (вниз на ленте) -> Показать код -> Вставить
Сохранить как <без разницы>.xlsm (важно, что вы выбираете * .xlsm, так как вы хотите использовать макрос в этом файле)
Вуаля!
Единственное, что отсутствует форматирование, но в противном случае вы должны получить тот же результат, более или менее.
Код:
Private Sub CommandButton1_Click ()
ActiveSheet.Unprotect ("123")
Dim sheetId As Integer
sheetId = 1
Dim s_date As Date
Если Таблицы (sheetId) .Cells (4, 9) .Value > 0 Тогда
s_date = листы (sheetId) .Cells (4, 9) .Value
еще
s_date = "01.01.1900"
End If
Dim e_date As Date
Если Таблицы (sheetId) .Cells (5, 9) .Value > 0 Тогда
e_date = листы (sheetId) .Cells (5, 9) .Value
еще
e_date = "01.01.1900"
End If
Dim sheetTHId As Integer
sheetTHId = 2
«запрограммированный
Application.ScreenUpdating = False
Рабочие листы (sheetId) .Cells.Columns ("A: E") .ClearContents
Рабочие листы (sheetId) .Cells.Columns ("A: E") .Font.Bold = False
Рабочие листы (sheetId) .Cells.Columns ("A: E") .Borders.LineStyle = xlNone
Рабочие листы (sheetId) .Cells.Columns ("A: E") .Interior.ColorIndex = 0
Рабочие листы (sheetId) .Cells (1, 1) .Value = "рынок"
Рабочие листы (sheetId) .Cells (1, 2) .Value = "Баланс [BTC]"
Рабочие листы (sheetId) .Cells (1, 3) .Value = "Денежную сумму, уплаченную [BTC]"
Рабочие листы (sheetId) .Cells (1, 4) .Value = "Сумма [Altcoins]"
Рабочие листы (sheetId) .Cells (1, 5) .Value = "Break-Even-цена (без сборов) [BTC]"
Рабочие листы (sheetId) .Range (листы (sheetId) .Cells (1, 1), листы (sheetId) .Cells (1, 5)). Границы (xlEdgeBottom) .LineStyle = xlContinuous
«Ген таблицы на основе данных tradehistory
Dim r_next As Boolean
r_next = True
Dim r_next2 As Boolean
r_next2 = True
Дим г As Integer
г = 2
Dim r2 As Integer
r2 = 2
Dim рынок As String
рынок = ""
Dim R_LAST As Integer
R_LAST = 2
«Цикл по строкам в [tradehistory] -sheet
Do While r_next
Если Таблицы (sheetTHId) .Cells (г, 1) .Value <> "" затем
Если Таблицы (sheetTHId) .Cells (г, 1) .Value >= s_date и (листы (sheetTHId) .Cells (г, 1) .Value <= E_date Или e_date = "01.01.1900") Затем
r_next2 = True
r2 = 2
рыночные = листы (sheetTHId) .Cells (г, 2) .Value
«Цикл по строкам в [известково] -sheet, чтобы увидеть, если рынок текущей строки в [tradehistory] -sheet уже есть в списке
Do While r_next2
Если Рабочий листы (sheetId) .Cells (r2, 1) <> рынок и рабочие (sheetId) .Cells (r2, 1) <> "" затем
r 2 = R2 + 1
еще
Рабочие листы (sheetId) .Cells (г2, 1) .Value = рынок
r_next2 = False
End If
Если R_LAST < r2 Тогда
R_LAST = г2
End If
петля
Если листы (sheetTHId) .Cells (г, 4) = "купить" затем
Рабочие листы (sheetId) .Cells (r2, 2) .Value = (sheetId Рабочие листы) .Cells (r2, 2) .value - листы (sheetTHId) .Cells (г, 7) .Value
Рабочие листы (sheetId) .Cells (r2, 3) .Value = (sheetId Рабочие листы) .Cells (г2, 3) .Value + 0
End If
Если листы (sheetTHId) .Cells (г, 4) = "продавать" затем
Рабочие листы (sheetId) .Cells (г2, 2) .Value = листы (sheetId) .Cells (г2, 2) + .value листы (sheetTHId) .Cells (г, 10) .Value
Рабочие листы (sheetId) .Cells (r2, 3) .Value = (sheetId Рабочие листы) .Cells (r2, 3) .Value + ((sheetTHId Рабочие листы) .Cells (г, 7) .value - листы (sheetTHId) .Cells ( г, 10) .Value) + 0
End If
Рабочие листы (sheetId) .Cells (г2, 4) .Formula = "= SUMIF (" & Рабочие листы (sheetTHId) .Name & "! B: B," & Рабочие листы (sheetId) .Name & "!" & r2 & "," & Рабочие листы (sheetTHId) .Name & "! K: K)"
Рабочие листы (sheetId) .Cells (г2, 5) = .FormulaR1C1 "= ЕСЛИ (RC [-1]>0,001, RC [-3] / RC [-1], "","")"
«Штриховки для readiablity
Если r2 Mod 2 = 0, то
Диапазон (sheetId (Рабочие листы) .Cells (r2, 1), (sheetId Рабочие листы) .Cells (г2, 5)). Interior.ColorIndex = 15
End If
End If
г = г + 1
еще
r_next = False
End If
петля
«Коррекция на основе данных deposithistory
sheetTHId = 3
r_next2 = True
r2 = 2
Do While r_next2
Если Таблицы (sheetTHId) .Cells (r2, 1) .Value <> "" затем
Если Таблицы (sheetTHId) .Cells (r2, 1) .Value >= s_date А (sheetTHId (Рабочие листы) .Cells (г2, 1) .Value <= E_date Или e_date = "01.01.1900") Затем
Если Таблицы (sheetTHId) .Cells (r2, 2) .Value <> "BTC" затем
r_next = True
г = 2
Do While r_next
Если Таблицы (sheetId) .Cells (г, 1) .Value <> "" затем
Если (sheetTHId Рабочие листы) .Cells (г2, 2) .Value = Левый (Рабочие листы (sheetId) .Cells (г, 1) .value, Len (sheetTHId (Рабочие листы) .Cells (г2, 2) .Value)) Тогда
Рабочие листы (sheetId) .Cells (г, 4) = .Formula листы (sheetId) .Cells (г, 4) .Formula & "+" & Рабочие листы (sheetTHId) .Cells (г2, 3) .Value
End If
г = г + 1
еще
r_next = False
End If
петля
End If
End If
r 2 = R2 + 1
еще
r_next2 = False
End If
петля
«Закончить с суммой строки
Строки (R_LAST + 1) .EntireRow.Font.Bold = True
Рабочие листы (sheetId) .Cells (R_LAST + 1, 1) .Value = "SUM:"
Рабочие листы (sheetId) .Cells (R_LAST + 1, 2) = .Formula "= СУММ (В2: B" & R_LAST & ")"
Рабочие листы (sheetId) .Cells (R_LAST + 1, 3) = .Formula "= СУММ (С2: С" & R_LAST & ") * (- 1)"
Рабочие листы (sheetId) .Range (листы (sheetId) .Cells (R_LAST + 1, 1), листы (sheetId) .Cells (R_LAST + 1, 5)). Границы (xlEdgeTop) .LineStyle = xlContinuous
Application.ScreenUpdating = True
ActiveSheet.Protect ("123")
End Sub
Привет!